簡體   English   中英

如何在maven構建中找到峰值內存使用情況

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM