V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xiaozhaoz  ›  全部回复第 2 页 / 共 3 页
回复总数  46
1  2  3  
@PTLin 写入 reserved memory address ,然后如你所说的 gp 上捕获异常,写一级目录和 cr3. 这个方法老的 linux 版本上试过,可以走通但没什么用。
问一下,这个证有什么用。
我第一年有这个考试的时候,好像是 09 年吧,过了拿了证。一直在吃灰。
当年没书没题没范围,因为做了好几年架构设计,没准备去考感觉很容易就过了,以为这个证没啥用,这几年看好像很多人考。
@PTLin
我觉得也不是 cpu 设计的原因,是操作系统实现的原因。
如果说的是 userspace process , 没必要一级页表也要动态分配,因为程序总是要用内存的。一级页表开销也不大。
如果真的要实现 userspace process 一级页表也要动态分配,以前尝试过 cr3 放一个 reserved address ,然后触发 sigbus 后再分配 pdbr
2017-11-07 19:58:45 +08:00
回复了 xilixjd 创建的主题 程序员 前端月薪天花板大概是多少
天花板,嗯,想想 Zuckerberg 吧, 一开始也是玩前端. 年收入大概 1B ¥...
满意了吧..
2016-12-20 16:12:09 +08:00
回复了 cctv323 创建的主题 职场话题 帝都 985 研究僧,明年找工作,现在转前端来得及吗
去一家写代码的做无人机公司。
建议别转前端。

做飞行控制等算法是你的优势, 编码技能只是点缀而已。

所以去大疆或者很多国外的新起的无人机公司。
2016-11-19 21:32:49 +08:00
回复了 Antidictator 创建的主题 程序员 看技术文档 PDF 之类的比较适合是 Kindle 吗?
kindle dxg 谁用谁知道。
2016-11-04 18:35:20 +08:00
回复了 wuruxu 创建的主题 Linux 大家平时对 Linux 桌面的性能优化有需求吗?
lz 是想做这行吗?

08 年底调试过一年多的显卡驱动, 芯片里面的东西很多靠猜和试。做过了包括 mesa opengl 实现, glsl compiler ,和 里面的 video, encoder, decoder 优化和测试。

只能说当年 intel 坑太多,现在想起都会做噩梦。
2016-10-31 11:18:27 +08:00
回复了 Fload 创建的主题 职场话题 BAT 工作经历,能否洗白非计算机科班的专业出身呢?
看公司, 我们去名校, TOP10 , 就喜欢招非科班出生的。 心理学,临床医学的也招过。 只要技术过硬就行。

有个说法, google 里,看到高中学历的, 肯定是大牛。 要不然不会和你坐在一起。 学历劣势反衬技术牛。
2016-10-25 20:12:21 +08:00
回复了 linuxzpf 创建的主题 问与答 求教:在同一台电脑上如何做到开发一个项目的两个分支?
上面已经有几个同学说了。

git workdir ,新版本叫 git worktree, 自己查一下就知道了。
一个 worktree 对应一个 branch ,每个 worktree 下面的.git 是指向同一个地方。

所以你的开发模式就是,多个 worktree , 每个 worktree 对应一个 branch ,两个 iterm 中使用不同的 worktree ,所有 worktree 指向同一个 git repo. 不要用 clone 多分 repo 的方法,避免重复和各种同步问题。
2016-10-25 18:29:41 +08:00
回复了 linuxzpf 创建的主题 问与答 求教:在同一台电脑上如何做到开发一个项目的两个分支?
去理解 git 的 workdir 功能, git 源码中一个创建 workdir 的脚本。
创建两个 workdir ,每个开发不同分支,但 git local repo 是一个。
2016-10-09 23:08:23 +08:00
回复了 algas 创建的主题 Linux Linux 多线程程序虚拟内存占用过大有什么问题吗?
error 6,7 指的是用户空间写物理内存异常。不是 signal x

现在可以肯定,是不是 oom

你这个问题好查,每次异常的 eip 都相同,都是 0x4034f3 ,所以反汇编,根据偏移可以推算到代码,才能确切定位是什么问题。
2016-10-09 14:59:19 +08:00
回复了 algas 创建的主题 Linux Linux 多线程程序虚拟内存占用过大有什么问题吗?
@WKPlus ,

overcommit 的意思是是否允许过量使用虚存。

所以
0 是不予许,也就是超过一定的虚存会分配失败,但是一个复杂的算法计算上限。
1 是允许, 也就是虚存可以一直分配下去,知道进程的地址空间,或者 oom 发生。
2 是老模式, 就是 ( 50% * 物理内存) + swap 计算虚存使用上限。
2016-10-09 14:50:45 +08:00
回复了 algas 创建的主题 Linux Linux 多线程程序虚拟内存占用过大有什么问题吗?
@WKPlus

The Linux kernel supports the following overcommit handling modes

0 - Heuristic overcommit handling. Obvious overcommits of
address space are refused. Used for a typical system. It
ensures a seriously wild allocation fails while allowing
overcommit to reduce swap usage. root is allowed to
allocate slightly more memory in this mode. This is the
default.

1 - Always overcommit. Appropriate for some scientific
applications. Classic example is code using sparse arrays
and just relying on the virtual memory consisting almost
entirely of zero pages.

2 - Don't overcommit. The total address space commit
for the system is not permitted to exceed swap + a
configurable amount (default is 50%) of physical RAM.
Depending on the amount you use, in most situations
this means a process will not be killed while accessing
pages but will receive errors on memory allocation as
appropriate.

Useful for applications that want to guarantee their
memory allocations will be available in the future
without having to initialize every page.
2016-10-09 14:40:04 +08:00
回复了 algas 创建的主题 Linux Linux 多线程程序虚拟内存占用过大有什么问题吗?
@ryd994 通过楼主提供的信息,收到是 signal 11 。 所以初步认为是 overcommit , 而不是 oom , oom 是 signal 9.
2016-10-09 14:37:10 +08:00
回复了 algas 创建的主题 Linux Linux 多线程程序虚拟内存占用过大有什么问题吗?
楼主的 overcommit_memory 设置是 0 , 所以该程序的虚拟内存 overcommit limit 是动态计算的, 不是 66G 。
如果 overcommit_memory == 2, 超过 66G 会立即异常。
2016-10-09 14:35:27 +08:00
回复了 algas 创建的主题 Linux Linux 多线程程序虚拟内存占用过大有什么问题吗?
@ryd994
如果楼主是 ps 命令看到的 VSZ , 那就是虚拟内存。
VSZ virtual memory size of the process in KiB (1024-byte units). Device mappings are currently excluded

楼主确实没说清楚。
如果整个系统只占用 80G RSS ,一般不会 OOM ,但内存 zone 情况不好说。
所以 dmesg 或者 /var/下面的 log 看一眼才能确定。
2016-10-09 14:19:46 +08:00
回复了 algas 创建的主题 Linux Linux 多线程程序虚拟内存占用过大有什么问题吗?
CommitLimit: 65957680 kB
Committed_AS: 151684 kB

单一进程,最多只允许 malloc() 66G 虚拟内存, 超过就会 malloc 失败。

echo 1 > /proc/sys/vm/overcommit_memory

再试试看。
2016-10-09 14:09:26 +08:00
回复了 algas 创建的主题 Linux Linux 多线程程序虚拟内存占用过大有什么问题吗?
cat /proc/meminfo , 贴出来看看
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5838 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 06:38 · PVG 14:38 · LAX 22:38 · JFK 01:38
Developed with CodeLauncher
♥ Do have faith in what you're doing.