【发布时间】:2017-01-04 06:28:11
【问题描述】:
昨天我测试了一个我用 C++ 编写的应用程序。我在 Visual Studio 中以调试模式启动了该应用程序,并让它与其他一些应用程序(Firefox、Explorer、MS Word...)一起运行了一夜。今天早上我检查了测试电脑,发现:
- Visual Studio 遇到异常,在内存分配语句中显示“内存不足”。
- Firefox 也因内存不足而被杀死。
- 任务管理器显示内存使用量约为 6.5 GB(已安装 8.0 GB)。我总结了任务管理器中显示的所有应用程序的内存使用情况,但总和远小于 6.5 GB。
我检查了 Visual Studio 和我的应用程序的内存使用情况,但它们都很轻。然后我将我的应用程序与 Visual Studio(vis 任务管理器)一起杀死,但内存使用量并没有减少。然后我尝试杀死其他一些进程,但内存使用量仍然没有减少。毕竟,我必须重新启动系统才能收回内存。
- 正如What REALLY happens when you don't free after malloc? 中接受的那样,我认为我的应用程序不是内存泄漏的原因,因为如果是这样,那么在应用程序被杀死后内存使用量会减少(实际上并没有减少)。我说的对吗?
- 我通过Windows using too much RAM, how to diagnose resource hog 听说
nonpaged pool memory leak与我的症状相似(即在杀死一些可疑进程后,但内存使用量并未减少)。我的申请会落入这种情况吗?怎么可能?
【问题讨论】:
-
任务管理器不是此类实验的可靠工具。
标签: c++ memory memory-management memory-leaks