2
我想調試我的java進程消耗多少內存。如果我錯了,請糾正我。我是否正確地讀取了這條命令?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11798 root 20 0 17.354g 6.084g 164456 S 38.9 10.2 12:52.04 java
這是過程。這就是我如何開始Java應用程序
'-server -Xmx10G -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps'
正如你可以看到,我給那個應用程序10G的內存。但根據最高幫助頁面%MEM是實際內存使用率的百分比。在這種情況下,我假設它只使用10G的10%?
我這樣問的原因是,如果只使用1GB,我可能想將-Xmx降低到3GB,然後給它10G會有點矯枉過正。
我的問題是,我是否正確假設10%是該進程內存的實際使用情況,因此我降低了-Xmx選項,以便其他進程可以獲得更多內存。
'Xmx'是「最大限制」。它不是「分配太多」,而是「不要多分配」 –
%MEM是相對於系統總內存使用的實際內存的百分比。 –
爲什麼不在JDK中使用Java VisualVM? – mariusz2108