所以 - jnlp 文件可以这样请求堆内存大小:
<j2se version="1.6+" href="blah" max-heap-size="1g"/>
对于基于 Web 的应用程序来说,1 GB 的内存是很大的,不是吗,但遗憾的是,用户可能希望使用我的应用程序执行的某些(不是全部)任务需要那么多内存。
问题是,如果你请求一个比 jvm 允许的更大的最大堆大小,它就会失败,默默地。糟糕。
我不知道的第一件事是 jvm 如何决定最大允许的 max-heap-size 是多少。大概取决于可用内存?
假设是这种情况,有没有一种方法可以测试客户端上有多少内存可用,并且只在可以处理的情况下请求较大的最大堆大小?能力较差的客户端只能使用较小的堆运行并失去一些功能。
最佳答案
... is there a way I can test how much memory is available on the client and only request a large max-heap-size if it can handle it?
我不这么认为。 (让您的服务器查询用户的 PC 有多少内存将是一个潜在的安全问题......)
我认为您能做的最好的事情就是为用户提供多个具有不同堆大小的 JNLP 链接,并允许他们在它们之间进行选择。
关于Java 网络启动 : how to vary heap memory request in jnlp depending on what client can manage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8182576/