堆内存实际何时释放

When does the heap memory actually get released?

本文关键字:何时 释放 内存      更新时间:2023-10-16

我使用new as分配内存,当我在其中一个方法和析构函数中接收到数据时,我将使用delete释放所有分配的内存。

然而,在从任务管理器释放内存后,当我在进程选项卡下查看内存使用情况时,内存使用情况仍然保持不变。这不会给人留下记忆被释放的印象。

那么,内存什么时候真正被释放?找出进程所使用的实际内存的最佳方法是什么。

感谢

在大多数情况下,当应用程序运行时,它永远不会返回给操作系统。当然,之后,操作系统会恢复所有资源。

[在评论正确指出"永远"是一段很长的时间后编辑…]

操作系统为应用程序分配一个默认堆。此堆是在进程初始化期间分配的。因此,新的和删除的不会影响您在任务管理器中看到的栏。

然而,如果您试图初始化一个大缓冲区,但分配的堆不够,操作系统将为您的应用程序分配更多内存,这应该反映在任务管理器中。。。