- 主题:/proc/self/status的内容是实时更新的吗?
比如我malloc了一块内存,立刻读/proc/self/status中的VmSize这一行,就能看到变化吗?
问这个的原因是:
我做了类似的操作(分配一块内存),然后把/proc/self/status的内容全部输出,就能够看到VmSize确实变了。但是如果搜索/proc/self/status里面的VmSize这一行并输出,那么就不变...
--
FROM 14.26.160.*
/proc下的东西都是实时的
【 在 il15 的大作中提到: 】
:比如我malloc了一块内存,立刻读/proc/self/status中的VmSize这一行,就能看到变化吗?:问这个的
- 来自 水木社区APP v3.5.7
--
FROM 116.233.150.*
主要是因为你没有用到这个内存
那是假分配
【 在 il15 的大作中提到: 】
: 比如我malloc了一块内存,立刻读/proc/self/status中的VmSize这一行,就能看到变化吗?
: 问这个的原因是:
: 我做了类似的操作(分配一块内存),然后把/proc/self/status的内容全部输出,就能够看到VmSize确实变了。但是如果搜索/proc/self/status里面的VmSize这一行并输出,那么就不变...
: ...................
--
FROM 139.227.18.*
/proc 下的东西是实时的,但是如果只是调用了一次 malloc,那不一定 VmSize 会变化,不是每次 malloc 都会进内核
【 在 il15 的大作中提到: 】
: 比如我malloc了一块内存,立刻读/proc/self/status中的VmSize这一行,就能看到变化吗?
: 问这个的原因是:
: 我做了类似的操作(分配一块内存),然后把/proc/self/status的内容全部输出,就能够看到VmSize确实变了。但是如果搜索/proc/self/status里面的VmSize这一行并输出,那么就不变...
: ...................
--
FROM 14.116.239.*
谢谢楼上的各位。
我分配的是1G的内存。
关键是:我把/proc/self/status的内容全部输出(逐行get,然后每行都fprintf到stderr),就能够看到VmSize确实变了。但如果是逐行get,发现是VmSize:... 才输出,其它跳过,这种方式就不会变。
【 在 vonNeumann 的大作中提到: 】
: /proc 下的东西是实时的,但是如果只是调用了一次 malloc,那不一定 VmSize 会变化,不是每次 malloc 都会进内核
:
--
FROM 14.216.132.*
确认每次读之前都关闭了文件重新打开么?
【 在 il15 (il15) 的大作中提到: 】
: 谢谢楼上的各位。
: 我分配的是1G的内存。
: 关键是:我把/proc/self/status的内容全部输出(逐行get,然后每行都fprintf到stderr),就能够看到VmSize确实变了。但如果是逐行get,发现是VmSize:... 才输出,其它跳过,这种方式就不会变。
:
--
FROM 115.199.177.*
这个没有。两种测试下,我都是fseek到刚开始的。
我先试一下关闭了再打开吧。
【 在 StephenLee 的大作中提到: 】
: 确认每次读之前都关闭了文件重新打开么?
--
FROM 183.42.226.*
现在我加了fflush,没问题了。
多谢诸位!
【 在 il15 的大作中提到: 】
: 这个没有。两种测试下,我都是fseek到刚开始的。
: 我先试一下关闭了再打开吧。
:
--
FROM 183.42.226.*
没明白。你把fflush加在哪里了?
【 在 il15 的大作中提到: 】
: 现在我加了fflush,没问题了。
: 多谢诸位!
--
FROM 139.227.18.*
fflush ??
你不是只读的打开的么?
【 在 il15 的大作中提到: 】
: 现在我加了fflush,没问题了。
: 多谢诸位!
--
FROM 220.249.52.*