【发布时间】:2011-10-07 19:34:25
【问题描述】:
这个问题纯属理论。
我想知道 Linux 源代码 是否可能存在内存泄漏,以及他们如何调试它,考虑到毕竟是 Linux 处理每个程序的内存?
我很清楚,Linux 是用 C 语言编写的,它必须自己处理 malloc 和 free。我不明白的是我们如何测量操作系统的内存泄漏。
请注意,这个问题不是特定于 Linux 的;它还解决了 Windows 和 MacOS X (darwin) 中的相应问题。
【问题讨论】:
-
很可能,是的,某处存在内存泄漏。几乎不可能在没有一次内存泄漏的情况下编写这么多代码(即使您是世界上最好的 C 程序员)。至于他们如何调试它,idk。
-
所有代码都有bug;其中一些错误会导致内存泄漏。这包括操作系统代码。但是,由于操作系统需要在不重新启动的情况下运行数天/数周/数月,您可以预期这些错误将被最小化到一个较小的水平。
-
所有代码都有错误...嗯,不是我的!绝不!好吧,至少我还没有找到,而且我的用户也没有报告过任何……不,不是我!
-
@Mark 我确实希望它们被最小化!但是由于我无法进行基准测试,我该如何检查哪个操作系统的泄漏最多?
-
@Thaddee,触发内存泄漏的条件可能与您在系统上执行的操作以及操作系统本身高度相关。如果我知道如何自动触发错误,我就不会为谋生而工作!您正在考虑的操作系统的典型正常运行时间将具有良好的相关性,并且可能对您来说比纯粹的泄漏更有用。
标签: windows linux macos memory-leaks operating-system