Java Web Start:如何根据客户端可以管理的内容来改变 jnlp 中的堆内存请求?
因此 - jnlp 文件可以这样请求堆内存大小:
<j2se version="1.6+" href="blah" max-heap-size="1g"/>
1 GB 对于基于 Web 的应用程序来说是很大的内存,不是吗,但可惜的是,用户可能希望使用我的应用程序执行一些(不是全部)任务需要那么多内存。
问题是,如果您请求的 max-heap-size 大于 jvm 允许的值,它就会默默地失败。哎呀。
我不知道的第一件事是 jvm 如何决定最大允许的 max-heap-size 是多少。大概这取决于可用内存?
假设是这种情况,有没有一种方法可以测试客户端上有多少可用内存,并且仅在可以处理的情况下请求大的最大堆大小?能力较差的客户端只能使用较小的堆来运行并失去一些功能。
So - jnlp files can request heap memory size thusly:
<j2se version="1.6+" href="blah" max-heap-size="1g"/>
1 gigabyte is a lot of memory for a web based app to ask for isn't it, but alas some (not all) of the tasks the user might want to do with my app require that much memory.
Problem is, if you request a larger max-heap-size than the jvm wants to allow, it just fails, silently. Oops.
The first thing I don't know is how the jvm decides what the maximum allowable max-heap-size is. Presumably it depends on the available memory?
Assuming this is the case, 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? Less capable clients can just run with a smaller heap and lose a bit of functionality.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不这么认为。 (让你的服务器查询用户的 PC 有多少内存将是一个潜在的安全问题......)
我认为你能做的最好的事情就是为用户提供多个具有不同堆大小的 JNLP 链接,并允许他们在它们之间进行选择。
I don't think so. (Having your server inquire how much memory the user's PC has would be a potential security issue ... )
I think that the best you can do is to offer users multiple JNLP links with different heap sizes, and allow them to chose between them.