繁体   English   中英

对于具有专用 memory 的 java 应用程序,最小堆大小低于最大堆大小是否有意义?

[英]For java applications with dedicated memory, does it make sense to have a lower Min Heap Size than Max Heap Size?

对于具有专用 memory 的应用程序,最小堆大小小于最大堆大小是否有意义? (-Xms、-Xmx 参数)这些是 docker 容器内的后端服务器。

或者最小和最大堆相等是否理想?

就像没有在堆中使用时有理由将一些 memory 返回到系统吗?

假设没有其他进程预期在后台执行。 服务器操作系统之外的东西。

根据文档:

-Xms-Xmx设置为相同的值可以通过从虚拟机中删除最重要的大小决定来提高可预测性。 但是,如果您做出错误的选择,虚拟机将无法进行补偿。

通常,在较大的堆上,GC 运行的频率较低。 但是在某些情况下,较大的堆可能会导致性能下降(例如,扫描 memory 以查找对象的库)。 同样对于较大的堆,启动时间会稍长,但无需在运行时调整堆大小。

大多数情况下,差异是如此之小,以至于没有人可以识别。 但找到最佳 jvm 配置的最佳方法始终是测量。 有很多衡量性能的好工具,memory 等,例如 JHM、JMC、VisualVm 等。每个应用程序都不同,因此没有共同的最佳选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM