尿常規(guī)能檢查出什么 如何檢查內存泄漏?
如何檢查內存泄漏?共享內存通常指操作系統(tǒng)提供的進程間通信方式。你所說的叫做記憶池。例如,nginx使用內存池。內存池的主要功能不是防止內存泄漏。相反,內存池不容易通過Valgrind檢查內存泄漏。例如
如何檢查內存泄漏?
共享內存通常指操作系統(tǒng)提供的進程間通信方式。你所說的叫做記憶池。例如,nginx使用內存池。
內存池的主要功能不是防止內存泄漏。相反,內存池不容易通過Valgrind檢查內存泄漏。例如,如果您從內存池中取出一段內存并忘記將其返回內存池,這不是內存泄漏嗎?內存池的主要優(yōu)點是避免了在小內存分配過多的情況下頻繁地向操作系統(tǒng)申請內存。使用大內存,小內存直接從內存池中獲取。前者是將物理內存轉換為虛擬內存并以內核狀態(tài)返回給用戶,后者是計算指針并通過算法返回給用戶狀態(tài)。
要防止內存泄漏(和資源泄漏),一方面是良好的編程習慣(如C的goto分支、C的raii),另一方面是要學會使用Valgrind等內存泄漏檢測工具。否則,最好主動接受GC。盡管您調用了資源類,但是您忘記了它也會泄漏內存。