【发布时间】:2010-09-24 08:21:32
【问题描述】:
我在某处读到,在某些特殊情况下需要内存泄漏,但在极少数情况下实际上是一件好事。但我不记得具体是什么了!
有人知道或记得这样的论点吗?
谢谢,阿迪
【问题讨论】:
标签: memory-leaks
我在某处读到,在某些特殊情况下需要内存泄漏,但在极少数情况下实际上是一件好事。但我不记得具体是什么了!
有人知道或记得这样的论点吗?
谢谢,阿迪
【问题讨论】:
标签: memory-leaks
我能想到的唯一需要内存泄漏的情况如下:
(除了第一个之外,它们都有点令人费解)
一种学术情况,在这种情况下,内存泄漏将是编程课中很好的学习练习;包括追踪和防止泄漏。
一个分析/测试场景,我们希望了解我们的软件在泄漏情况下的行为。
编写泄漏应用程序来测试/调试分析应用程序。
【讨论】:
哇,我很想知道你是从哪里听说的。内存泄漏就是这样,内存的意外泄漏会浪费资源。我看不出有什么理由想要这种行为,除非你正在构建你希望你的竞争对手使用的软件(就像美国人对俄罗斯人所做的那样,他们让他们窃取管道控制软件)!
【讨论】:
我能想到的唯一接近的事情是当您想要测试代码以处理内存不足的情况时。这对于没有交换空间的嵌入式系统很重要,因为内存不足是一种致命的情况。
如果您想通过自动化单元测试获得接近 100% 的代码覆盖率,您必须想办法让自动化单元测试中的特定分配请求失败(说起来容易做起来难)。
完成后,您需要为每个分配请求编写一个单元测试,以确保正确处理该分配的内存不足故障(大量工作)。
【讨论】:
内存泄漏永远不会“正常”。有时您需要分配一块内存而不是释放它,因为稍后会需要它,但这不是内存泄漏。但是说内存泄漏之类的东西可以避免内存碎片就像说今天最好跳过工作而不打电话以避免迟到。
【讨论】:
我从未听说过内存泄漏是件好事。
在现代操作系统中,它们几乎没有 5-10 年前那么糟糕。那时,在监管程序和内存泄漏方面做得更差的操作系统会导致内存永久丢失,直到操作系统重新启动。
这些天来,这不是一个真正的问题。因此,最常见的“内存泄漏”是当事情没有正确清理错误并退出程序时。当程序即将终止时,通常可以让内存保持未释放状态,因为当程序被操作系统拆除时,所有这些都会以任何方式重新释放。
当程序运行时,我想不出你会想要内存泄漏的原因。
【讨论】:
如果您是一家托管公司,可以收取 $$$++ 用于服务器内存升级的费用。
【讨论】:
@阿迪巴尔达:
从长远来看,泄漏对象消耗更多内存的问题将超过内存碎片问题。
【讨论】:
如何避免内存碎片?这不是一个足够好的理由吗?
【讨论】: