假设您有一个相当大的(~2.2 MLOC),相当陈旧(在10年前开始)使用C/C++的Windows桌面应用程序.大约10%的模块是外部的,没有源,只有调试符号.
您将如何将应用程序的内存占用减少一半?至少,你会做些什么来找出内存消耗的位置?
覆盖的malloc()/ free()的新()/删除()与保留的分配有多大的轨道,并(通过记录调用堆栈,后来解决它针对符号表),在那里它们被制成包装.关闭时,让您的包装器显示仍然分配的任何内存.
这应该使您能够找出最大分配的位置并捕获任何泄漏.