我的程序使用大量内存。这就是 valgrind massif 工具向我展示的内容:
--------------------------------------------------------------------------------
n time(i) total(B) useful-heap(B) extra-heap(B) stacks(B)
--------------------------------------------------------------------------------
28 38,531,086,036 760,235,208 143,002,822 617,232,386 0
正如你所看到的,额外的部分比有用的堆大几倍。
我应该怎么做才能减少这个额外的内存?做更少的分配?
这就是所谓的内存碎片吗?
操作系统:Linux 2.6。程序是用 C 语言编写的。它应该 24 小时 7 小时工作,并且可以处理大量数据。