当使用 valgrind 时,有一个部分仍然可以到达泄漏,但这最终应该由操作系统清理。是否存在这会成为问题的情况?我正在考虑线程的情况,操作系统可能不会在主进程完成之前清理子进程中仍然可到达的泄漏,但我不确定这是否是一种可能的情况。
本质上是否存在直到执行结束(程序退出)才释放所使用的内存的问题?
最佳答案
当然。假设您在 Valgrind 下运行的程序是某个远程请求处理程序的测试用例。在生产中,服务器将处理很多很多请求;概率仅受系统总正常运行时间的限制。所以每个请求都必须清理它的垃圾。
一些测试用例不会模拟服务器的生命周期内存使用情况,但它们足以测试没有请求留下垃圾的假设。如果留下了垃圾,那么无论是否仍然存在指向垃圾的指针,这都是一个错误。 Valgrind 可以帮助您解决这个问题。
关于c++ - 是否存在仍然可达的内存泄漏问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55682903/