0

我知道清理是一件好事。我也了解操作系统内部,所以如果我知道我的进程正在终止,那么它的内存将被释放。但我喜欢提出不同的观点。我在线上,在退出时释放内存是相当糟糕的主意。

例如,我可能分配了当前已换出的大内存,如果我在退出时将其释放,则需要将其带到 RAM 中,然后释放它。如果我不这样做,退出时它只会在一张表中被标记为空闲。

总体而言,操作系统发生了很大变化(基本保持不变),我理解这个问题可以被认为是 A_VERY_PLATFORM_DEPENDENT,但从今天的应用程序开发人员的角度来看,他要么被困(?)在某些框架中,要么是胆大妄为的 coder,谁正在研究作为 COM 的原始技术,非常依赖,我会调用 VERY_CONTROLLED_ENVIRONMENT。

对于TL;DR:在现代操作系统上,我认为我不应该在退出时执行清理。如果你认为我错了,为什么?

PS:我不是在谈论 RTOS,我的意思是受控环境是指 Windows、Linux,我从来没有指设备驱动程序开发或操作系统开发。

4

1 回答 1

7

只有当您访问它们时,才会将已换出的内存块带入。释放一个块是一个“簿记”事件,它不需要内存访问。通过跳过对释放内存的调用,您不会获得任何好处。

总是在退出时手动释放资源的理由要强大得多:它允许您使用工具进行内存分析,因为您可以区分意外泄漏和故意泄漏。仅凭这个原因就足以建议不要跳过内存清理。

于 2014-12-07T20:03:27.247 回答