首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减少不熟悉的大型代码库的内存占用

减少不熟悉的大型代码库的内存占用
EN

Stack Overflow用户
提问于 2008-09-23 18:28:18
回答 7查看 1.4K关注 0票数 4

假设您有一个相当大(约2.2MLOC)、相当旧(开始于10多年前)的C/C++ Windows桌面应用程序。大约10%的模块是外部的,没有源代码,只有调试符号。

您将如何将应用程序的内存使用量减半?至少,您会做些什么来找出内存被消耗的位置?

EN

回答 7

Stack Overflow用户

发布于 2008-09-23 18:54:59

使用包装器覆盖malloc()、/free()和new()/delete(),这些包装器跟踪分配的大小以及它们的来源(通过记录调用堆栈并稍后根据符号表进行解析)。关机时,让您的包装器显示仍分配的任何内存。

这将使你们都能够找出最大的分配位置,并捕获任何泄漏。

票数 7
EN

Stack Overflow用户

发布于 2008-09-23 18:59:05

我使用内存跟踪应用程序的this is description/skeleton将游戏的内存消耗减少了20%。它帮助我跟踪了许多由外部模块完成的分配。

票数 3
EN

Stack Overflow用户

发布于 2008-09-23 18:51:38

这不是一件容易的事。从追踪你能找到的任何内存泄漏开始(Rational Purify是一个很好的工具)。浏览源代码,并尝试优化数据结构和/或算法。

如果这听起来很悲观,很抱歉,但是减少50%的内存使用听起来并不现实。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/122826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档