我有一个java桌面应用程序,支持一次查看大量数据。为了支持这一点,我使用高 -Xms -Xmx
设置启动应用程序。例如,
-Xms512m -Xmx1024m
我遇到的问题是,根据客户端计算机和当前的使用情况,Java 虚拟机并不总是以如此高的设置启动。解决方案是减小尺寸。
还有其他人遇到过这个问题吗?你是怎么解决的?有没有办法预先确定良好的 -Xms
和 -Xmx
大小?或者有没有办法在应用程序内指定大小而不是在启动时指定大小?
最佳答案
你无法在 Java 代码中确定它,因为那时已经太晚了:它是 JVM 的一个属性,已经被启动了。
您需要执行一些特定于操作系统的操作来确定可用内存并使用适当的参数启动 JVM。例如,在 Linux 上,您可以使用 bash 脚本启动应用程序,该脚本首先检查/proc/meminfo 以确定系统配置,然后启动 Java程序,相应地设置堆大小。
关于java - 如何确定应用程序启动时的 Java 堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25899431/