快速成功退出C++并分配了大量对象

bil*_*ill 5 c++ heap destructor exit abort

我正在寻找一种方法来快速退出使用C++类在内存中分配了大量结构的C++.程序正确完成,但在程序中最后的"返回"之后,所有的自动析构程序都会启动.问题是程序通过大量的C++类结构分配了大约15GB的内存,并且这个自动破坏过程需要当它走遍所有结构时,大约要再完成一个小时 - 即使我不关心结果.到目前为止,该程序只需1小时即可完成任务.我想回到操作系统,让它正常的批发过程分配删除 - 这是非常快的.我一直在清理阶段通过手动杀死进程来做到这一点 - 但我正在寻找更好的程序解决方案.

我想向操作系统返回成功,但不关心保留任何内存内容.该程序在正常处理期间执行了大量动态分配/释放,因此它不仅仅是简单的堆管理.

任何意见?

Pau*_*ter 1

如果 15 GB 内存被分配给相当少量的类,您可以覆盖这些类的删除运算符。只需将调用传递给标准删除,但设置一个全局标志,如果设置了该标志,将使删除调用成为无操作。或者,如果程序的逻辑是在构建数据结构的正常过程中不会删除这些对象,则您可以在所有情况下忽略这些类的删除。