我需要找出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] ------------------------------------------------------------------------
答案 0 :(得分:4)
这里:
Final Memory: 43M/636M
43M
是构建结束时JVM使用的内存和636M
当前分配的内存(堆大小)。
但是这些信息无法给你峰值。
为什么使用的内存(43M
)不能被视为峰值?
为什么堆大小(636M
)不能被视为峰值?
因为如果GC减少了构建的峰值和结束之间的堆大小,峰值可能会优于堆大小。
很长一段时间的构建可能会在开始时执行密集型任务,然后执行较轻的任务。
因为如果GC增加堆大小直到此值,峰值可能会低于堆大小,但应用程序永远不需要消耗尽可能多的内存。
要在执行maven构建期间获取内存峰值,请使用为JVisualVM或JConsole设计的任何JVM工具监视Java应用程序(maven执行)。
以下是JVisualVM监控的Spring Boot应用程序的maven构建的屏幕截图,显示堆大小或构建结束时使用的大小都不是峰值: