Re: [問題] 釋放記憶體 free 與 sleep ?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章
84
220