我正在使用new分配内存,当我在我的一个方法和析构函数中接收数据时,我将使用delete释放所有已分配的内存。
然而,在释放内存后,从任务管理器中,当我查看进程选项卡下的mem使用情况时,内存使用情况仍然保持不变。它没有给人留下释放内存的印象。
那么,内存何时实际发布?找出进程使用的实际内存的最佳方法是什么。
由于
答案 0 :(得分:2)
在大多数情况下,在应用程序运行时,它永远不会返回到操作系统。当然,之后,操作系统会恢复所有资源。
[评论后正确地指出'从来没有'很长时间......]
答案 1 :(得分:0)
操作系统为您的应用程序分配默认堆。在进程初始化期间分配此堆。因此,新的和删除不会影响您在任务管理器中看到的栏。
但是,如果您尝试初始化一个大缓冲区并且分配的堆不够,操作系统将为您的应用程序分配更多内存 - 这应该反映在任务管理器中......