繁体   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