什么是处理进程所消耗的内存的策略?例如,我有一个程序,在旧版本中其内存使用不够优化,没有在正确的时间释放,这意味着它比应该更长时间地保留分配。请注意,我并不是说它泄漏了内存。新版本的程序修订了算法,现在内存更早地在程序的生命周期内释放。如何跟踪此过程?一些方法包括:编写一个malloc/new替换库来包装libc/libstdc ++,以某种方式使用valgrind进行操作,或者使用ps对进程使用的内存进行抽样并绘制图形。
如果您不想使用第三方工具(例如来自AMD、Intel的工具,valgrind应该有“massif”工具),您可以看一下Mtrace。
Mtrace几乎实现了您对内存分配所规划的所有功能。
我更推荐您使用valgrinds massif工具,虽然它没有像样的GUI/图形界面,但显示比例相当准确。
ps aux
的结果追加到一个文件中...然后你可以使用电子表格软件绘制内存随时间变化的结果。