我知道清理是件好事。我也理解操作系统内部,所以如果我知道我的进程正在终止,那么它的内存将被释放。但我想提出不同的观点。我觉得在退出时释放内存是相当不错的想法。
例如我可能已经分配了当前换出的大内存,如果我在退出时将其释放,则需要将其带到RAM,然后释放它。如果我不这样做,退出时只需在一张桌子上标记为免费。
总的来说,操作系统已经发生了很大变化(基础知识保持不变),我理解这个问题可以被认为是A_VERY_PLATFORM_DEPENDENT,但是从今天的应用程序开发人员的角度来看,他要么陷入某些框架,要么陷入困境。 coder,正在研究原始技术作为COM,非常依赖,我会称之为VERY_CONTROLLED_ENVIRONMENT。
对于TL;DR
:在现代操作系统上,我认为我不应该在退出时进行清理。如果你认为我错了,为什么?
答案 0 :(得分:7)
已经换出的内存块只有在您访问时才会被引入。释放一个区块是一个记账"事件,不需要内存访问。你不会通过跳过免费记忆的电话来获得任何收益。
在退出时始终手动释放资源的原因要强得多:它允许您使用工具进行内存分析,因为您可以将意外泄漏与有意泄漏区分开来。仅此原因就足以建议不要跳过内存清理。