我需要找出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] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
这里 :
Final Memory: 43M/636M
Run Code Online (Sandbox Code Playgroud)
43M是636M构建结束时JVM 使用的内存和当前分配的内存(堆大小)。
但是这些信息不能给您峰值。
为什么用过的内存(43M)不能视为峰值?
为什么不能将堆大小(636M)视为峰值?
因为如果GC在峰值和构建结束之间减小了堆的大小,那么峰值可能会超过堆的大小。
可能是一个很长的构建,在开始时执行密集的任务,然后执行较轻的任务。
因为如果GC将堆大小增加到该值之前,则峰值可能小于堆大小,但是应用程序永远不需要消耗那么多的内存。
要在执行maven构建过程中获得最大的内存,请使用为JVisualVM或JConsole设计的任何JVM工具监视Java应用程序(maven执行)。
这是受JVisualVM监视的Spring Boot应用程序的Maven构建的屏幕截图,该屏幕截图显示了构建结束时的堆大小或使用的大小都不是峰值:
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |