[英]How to find the peak memory usage in a maven build
我需要找出maven
構建的峰值內存使用情況,我可以依賴成功的maven
構建給出的最終輸出。 43M
是否表示maven
構建期間的峰值內存使用量。 提前致謝。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.222 s
[INFO] Finished at: 2017-07-31T19:10:04+05:30
[INFO] Final Memory: 43M/636M
[INFO] ------------------------------------------------------------------------
這里 :
Final Memory: 43M/636M
43M
是在構建結束時由JVM使用的內存和636M
當前分配的內存(堆大小)。
但是這些信息無法給你帶來最高價值。
為什么用過的內存( 43M
)不能算作峰值?
為什么堆大小( 636M
)不能被視為峰值?
因為如果GC減少了構建的峰值和結束之間的堆大小,峰值可能會優於堆大小。
很可能是一個非常長的構建,在開始時執行密集型任務,然后執行較輕的任務。
因為如果GC增加了堆大小直到此值,峰值可能不如堆大小,但應用程序永遠不需要消耗盡可能多的內存。
要在執行maven構建期間獲取內存峰值,請使用為JVisualVM或JConsole設計的任何JVM工具監視Java應用程序(maven執行)。
以下是JVisualVM監控的Spring Boot應用程序的maven構建的屏幕截圖,顯示堆大小或構建結束時使用的大小都不是峰值:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.