有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当堆大小空闲百分比高于50%时,java是否有助于增加JVM堆大小?

我有一个运行在MS Windows Server 2008上的J2EE web应用程序。应用服务器是Oracle WebLogic 11G。服务器有32GB的ram,但用户仍不断抱怨应用程序速度太慢

因此,我检查了JVM配置,发现分配的堆大小只有1GB,而服务器实际上有32GB的ram

然后我检查JVM堆大小空闲百分比,发现即使在服务器最忙的时候,仍然有50%的堆空闲

因此,我想知道如果我将堆大小增加到2GB或4GB是否有帮助

正如我读过的一些文章所述,当为JVM分配太多堆大小时,执行垃圾收集将花费很长时间


共 (2) 个答案

  1. # 1 楼答案

    使应用程序更快的正确方法是使用各种工具和其他可用信息源来找出其速度慢的原因。例如:

    • 使用web浏览器工具查看web性能等是否存在问题
    • 使用探查器识别代码中的执行热点
    • 使用系统级工具找出瓶颈所在;e、 前端与后端、网络流量、磁盘I/O。。。交换/抖动效果
    • 检查系统日志文件和应用程序日志文件以获取线索
    • 打开JVMGC日志记录,查看GC和“迟缓”请求之间是否存在关联

    然后你解决原因

    仅仅基于直觉随机地修改heap/GC参数是不可能的

    FWIW:我认为增加堆大小不太可能改善情况

  2. # 2 楼答案

    您可以将堆内存增加到物理内存的75%左右。但解决“慢问题”的机会太小了。问题不在这里,您应该分析大多数使用的函数的持续时间,并查看其持续时间比用户预期的长