Инструмент командной строки в Java запускается много раз подряд, JRE продолжает открываться / закрываться, медленно - PullRequest
0 голосов
/ 26 января 2011

Я написал инструмент командной строки на Java, и он запускается много раз подряд из сценария BAT.Прямо сейчас это работающий JAR (который задним числом, вероятно, не является правильным выбором здесь ...).Кажется, что JRE загружается и выгружается при каждом запуске программы, что кажется неэффективным.В целом, это кажется намного медленнее, чем следовало бы.

Знают ли какие-нибудь гуру из Java более правильный способ справиться с этой ситуацией?

Ответы [ 3 ]

1 голос
/ 26 января 2011

Поскольку это не легко исправить, вы также можете рассмотреть более радикальные подходы:

  1. На самом деле портирование того, что у вас в летучей мыши, в саму Java (легко, если это зацикливание файлов с каким-то фильтром).

  2. Компилирование фляги в exe (например, с GCJ), если максимальная переносимость не проблема.

1 голос
/ 26 января 2011

Вы можете попробовать несколько вещей. Проще всего запустить JVM с -Xquickstart.

РЕДАКТИРОВАТЬ : Похоже, что этот параметр предназначен только для IBM JDK (который также поддерживает AOT-компиляцию / совместно используемые кеши классов).

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

Кто-то создал проект для создания платформы для этой цели под названием nailgun, но не уверен, в каком состоянии он находится. Google дал мне такие результаты, когда я искал: http://sourceforge.net/projects/nailgun/ и http://martiansoftware.com/nailgun/.

Существует также GNU gcj, который будет компилировать Java до собственного кода http://gcc.gnu.org/java/.

0 голосов
/ 26 января 2011

Это на самом деле одна из самых больших проблем с Java, и здесь нет простых решений. По сути, если вам нужна легковесная программа, которая может запускаться много раз подряд, то вам не следует делать это на Java.

У меня нет опыта компиляции Java в нативный код, но я знаю, что почти никто не делает этого; для этого может быть веская причина.

Если вы опубликуете файл BAT или хотя бы опишите, что он делает, возможно, кто-то может предложить лучшее предложение.

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