作者sorryChen (陈扬和)
看板Programming
标题监测所用的memory
时间Wed Apr 22 14:15:39 2009
刚刚才听说可以在c++的code中加入macro 印出现在程式使用多少memory
方法是,在linux上执行到某行要监测时 去开/proc/self/statm 的档案
读取现在记忆体的资讯, 有人有用过(或有这样的macro吗)
而且这样还满神奇的 难道os需要每new 一个东西就去写一次这个档案吗
(虽然可能在记忆体中)
其实我会需要这样仔细的监测(而不只用top看)是因为有灵异事件
同一个code 只差几个printf 一个程序记忆体使用会爆炸
另一个不会.. 由於我的程式会先new一块很大的记忆体 delete 他然後在new另一块
强烈的怀疑compilier 在optimization 时 把它变成连续new而之後delete
我的猜想对吗 有办法避免吗 还是其实是我程式其他地方有错而不自知
另一个问题是 当我new一块大小为3G的array时 若记忆体总共空间够
但没有晚整的区块 这个部份应该是OS 帮忙处理page的吧
所以应该没有问题才是
不知道版上有没有人有类似的经验
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 128.125.87.33
1F:→ meltice:我比较怀疑32bit OS new的出3G吗? 115.83.40.104 04/23 00:10
2F:→ meltice:更不用提有没有整块的问题了... 115.83.40.104 04/23 00:11
3F:→ sorryChen:是64bits machine.. 而且那台有12G mem 128.125.87.33 04/23 00:50