Re: [問題] 釋放記憶體 free 與 sleep ?

看板LinuxDev作者 (啦 )時間16年前 (2009/06/10 23:46), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《Xphenomenon (啦 )》之銘言: : 標題: [問題] 釋放記憶體 free 與 sleep ? : 時間: Wed Jun 10 14:16:02 2009 : : 請問一下,當我在 free 某一個之前配置的記憶體時,在 free() 的下一行如果 : 我加 sleep(1) 的話,我去 cat /proc/meminfo 時,記憶體並沒有被釋放掉, : 但是如果不加上 sleep(1) 的話卻是正常釋放的,請問這是為甚麼呢? linux : 的記憶體管理機制有特別的地方嗎?因為現在記憶體不足,我必須邊釋放邊寫值 : 到 file 裡面,但是假設在 free 之後加上 sleep() 或 write() 的動作的話, : 我的記憶體卻沒有真正的釋放給系統,請問有人有類似的情況嗎? 感謝了! : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 60.251.211.196 : 推 CriLit:cat /proc/[pid]/maps 的結果呢 ? 06/10 22:42 : → CriLit:重複運用那個 buffer 呢 ? 一定需要一直 malloc/free 嗎 ? 06/10 22:43 因為記憶體的限制,只能一邊釋放一塊,一邊寫檔,我 google 一下,似乎 libc 的 free() 並會不真正的將 memory 還給 kernel,除非他自己維護的 threshold 值達到,因為我配置的記憶體是存放在自己維護的 memory node linked list 裡,每一個 node 大概 4k 左右,free() 時 libc 沒回應, 網路上有人說可以使用 mallopt() 強迫配置記憶體時使用 mmap() 方式, 但此方法在我的環境下是沒有作用的,真傷腦筋呀.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.211.196
文章代碼(AID): #1ABzLP-m (LinuxDev)
文章代碼(AID): #1ABzLP-m (LinuxDev)