тратить память, чтобы ускорить JVM - PullRequest
2 голосов
/ 13 января 2010

В Linux и Mac есть ли способ предварительного кэширования JVM - либо в ОЗУ, либо в состоянии, чтобы при запуске программы на Java она запускалась так же быстро, как программы на C / C ++?

Я хочу потратить память, чтобы это произошло.

Ответы [ 2 ]

4 голосов
/ 13 января 2010

Нет. К сожалению: (

Если подумать, причина того, что Java-программы запускаются быстрее в Windows в наши дни, заключается в том, что существует процесс (Java Quickstart), который агрессивно хранит копию файлов библиотеки времени выполнения в кеш-памяти, что, по-видимому, очень помогает. Я не знаю, был ли этот подход перенесен на Linux.

3 голосов
/ 13 января 2010

Разве это не загружает двоичный файл JVM и вливается в память, чтобы они могли быть общий

Да, но только в том же экземпляре JVM. Поэтому вы должны загрузить свое приложение в этот экземпляр, как это делает контейнер сервлета.

Весь начальный вызов вызова JVM - загрузка классов, что является причиной быстрого запуска Java, упомянутого Турбьёрном.

Таким образом, вы можете поместить библиотеки классов на более быстрые носители (RAM-диск), это, вероятно, ускорит ваш (первый) запуск. Однажды я установил Netbeans + JSDK на RAM-диск, и он запускается очень быстро, но после запуска он будет работать так же быстро, как загруженный с диска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...