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