Re: [問題] JAVA String
※ 引述《garywine1201 (那是啥)》之銘言:
: 一般而言jvm會在某段時間過後對於記憶體進行清理
: 但其清理的是程式在jvm中佔用的記憶體量
: 而非jvm在OS下的記憶體佔用量
: 可以看一下這邊對於gc()函式的實驗
: http://www.devdaily.com/java/edu/pj/pj010008/pj010008.shtml
: 摘錄最後實驗結果
: free memory before creating array: 4054912
: free memory after creating array: 3852496
: free memory after running gc(): 4064184
: 在實驗開始之前,jvm可用記憶體為4054912
: 這邊指的是jvm在OS當中的佔用量
: 實驗開始之後,jvm的記憶體配置為3852496
: 但重新釋放之後卻使得記憶體可用為4064184
: 這邊會發現jvm多吃了OS一些空間
從這些數據怎麼可以推論出 JVM 從 OS 獲得更多的記憶體空間?
這個測試程式執行 step 2 的時候,並不表示此時 JVM 管理的 heap 是 garbage-
free,所以等到 step 5 之後 available heap 空間變多,不代表 JVM 向 OS 索取
更多的記憶體。
: 因此對jvm進行free這個動作,並不會減少其耗用OS的資源能力
: 因為jvm是自行控管記憶體配置的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.140.84
討論串 (同標題文章)