看板 Programming 關於我們 聯絡資訊
剛剛才聽說可以在c++的code中加入macro 印出現在程式使用多少memory 方法是,在linux上執行到某行要監測時 去開/proc/self/statm 的檔案 讀取現在記憶體的資訊, 有人有用過(或有這樣的macro嗎) 而且這樣還滿神奇的 難道os需要每new 一個東西就去寫一次這個檔案嗎 (雖然可能在記憶體中) 其實我會需要這樣仔細的監測(而不只用top看)是因為有靈異事件 同一個code 只差幾個printf 一個程序記憶體使用會爆炸 另一個不會.. 由於我的程式會先new一塊很大的記憶體 delete 他然後在new另一塊 強烈的懷疑compilier 在optimization 時 把它變成連續new而之後delete 我的猜想對嗎 有辦法避免嗎 還是其實是我程式其他地方有錯而不自知 另一個問題是 當我new一塊大小為3G的array時 若記憶體總共空間夠 但沒有晚整的區塊 這個部份應該是OS 幫忙處理page的吧 所以應該沒有問題才是 不知道版上有沒有人有類似的經驗 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.125.87.33
meltice:我比較懷疑32bit OS new的出3G嗎? 115.83.40.104 04/23 00:10
meltice:更不用提有沒有整塊的問題了... 115.83.40.104 04/23 00:11
sorryChen:是64bits machine.. 而且那台有12G mem 128.125.87.33 04/23 00:50