Java web start: как изменить запрос кучи памяти в jnlp в зависимости от того, чем может управлять клиент? - PullRequest
1 голос
/ 18 ноября 2011

Итак - файлы jnlp могут запрашивать размер кучи памяти следующим образом:

<j2se version="1.6+" href="blah" max-heap-size="1g"/>

1 гигабайт - это большой объем памяти для веб-приложения, не так ли, но, увы, некоторые (не все) задачи, которые пользователь может выполнять с моим приложением, требуют такого большого объема памяти.

Проблема в том, что если вы запрашиваете больший максимальный размер кучи, чем хочет разрешить jvm, он просто молча завершается неудачей. К сожалению.

Первое, что я не знаю, так это то, как jvm решает, каков максимально допустимый максимальный размер кучи. Предположительно это зависит от доступной памяти?

Предполагая, что это так, могу ли я проверить, сколько памяти доступно на клиенте, и запросить большой максимальный размер кучи, только если он может с этим справиться? Менее способные клиенты могут просто работать с меньшей кучей и потерять часть функциональности.

1 Ответ

3 голосов
/ 18 ноября 2011

... есть ли способ проверить, сколько памяти доступно на клиенте, и запросить только максимальный размер кучи, если он может с этим справиться?

Я так не думаю. (Если ваш сервер спросит, сколько памяти у ПК пользователя, это может стать проблемой безопасности ...)

Я думаю, что лучшее, что вы можете сделать, - это предложить пользователям несколько JNLP-ссылок с разными размерами кучи и позволить им выбирать между ними.

...