我有一个通常在系统托盘中不断运行的 MFC C++ 应用程序。
它在内存中分配了一个非常广泛的对象树,当应用程序需要关闭时,这会导致应用程序需要几秒钟才能释放。
我所有的对象都是使用分配的new
,通常使用delete
.
如果我只是跳过删除所有对象,以便更快地退出,如果有的话会有什么影响?
Windows是否意识到进程已死并自动回收内存?
我知道不释放分配的内存几乎是亵渎神明,但我想我会要求看看其他人的想法。
仅当用户系统关闭或他们选择自行关闭程序时,应用程序才会关闭。
我有一个通常在系统托盘中不断运行的 MFC C++ 应用程序。
它在内存中分配了一个非常广泛的对象树,当应用程序需要关闭时,这会导致应用程序需要几秒钟才能释放。
我所有的对象都是使用分配的new
,通常使用delete
.
如果我只是跳过删除所有对象,以便更快地退出,如果有的话会有什么影响?
Windows是否意识到进程已死并自动回收内存?
我知道不释放分配的内存几乎是亵渎神明,但我想我会要求看看其他人的想法。
仅当用户系统关闭或他们选择自行关闭程序时,应用程序才会关闭。
当一个进程终止时,系统将回收所有资源。这包括释放内核对象的打开句柄和分配的内存。如果您在进程终止期间不释放内存,则对操作系统没有不利影响。
您将在终止进程中找到有关在进程终止期间执行的步骤的大量信息。关于您的问题,以下是相关部分:
终止进程会产生以下结果:
...
进程分配的任何资源都被释放。
不过,您可能不应该跳过调试版本中的清理步骤。否则,您将无法获得真正内存泄漏的内存泄漏诊断。