JVM, работающая в IDE, требует больше вычислительной мощности, чем работа в командной строке.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JVM, работающая в IDE, требует больше вычислительной мощности, чем работа в командной строке.

Сообщение Anonymous »

Я столкнулся с очень неприятной проблемой. Для разработки своего приложения я использовал IDE. Я отслеживал производительность по времени выполнения в IDE, но, к сожалению, когда я экспортировал свои классы в файлы Jar, в командной строке он работал в 7 раз медленнее. Я проверил свою JVM и убедился, что одни и те же JVM связаны с обоими исполнениями. Выделил больше динамической памяти для командной строки.

Позже я использовал инструмент мониторинга производительности процесса и одновременно запускал оба приложения (в CMD и в IDE). Я заметил, что оба процесса идентичны во всем, кроме мощности процессора. Процесс, запущенный в IDE, занимает около 19–23% загрузки ЦП, а в CMD — около 6–11% загрузки ЦП. Это может объяснить, почему запуск в IDE занимает меньше времени.

Чтобы сделать приложение понятным, ниже приведен фрагмент кода, который занимает большую часть времени

Код: Выделить всё

                         for (Call call: calls {

CallXCD callXCD = call.getCallXCD();
if(callXCD.isOnNet()){
System.out.println("OnNet");
}
else if (callXCD.isXNet()){
System.out.println("XNet");

}
else if (callXCD.isOthers()){
System.out.println("Others");

}
else if (callXCD.isIntra()){
System.out.println("Intra");
}
else {
System.out.println("Not Known");
}
}
CallXCD — это объект, содержащий несколько строковых переменных и несколько методов, таких как isOnNet и isXNet. Эти методы применяют метод CompareTo() к строкам объекта и возвращают true или false в соответствии с этим сравнением.

Я профилировал этот фрагмент кода, печатая время каждый раз. итерационный дубль. В IDE каждая итерация занимала около 0,007 миллисекунды, а в командной строке, запускающей файл jar, — около 0,2 миллисекунды. Поскольку мой код требует около 4 миллионов итераций, негативное влияние на производительность очень существенное.

Почему это происходит? Есть ли способ выделить JVM больше вычислительной мощности, например, аргументы памяти?

[img]https:// i.sstatic.net/riyWG.jpg[/img]


Подробнее здесь: https://stackoverflow.com/questions/189 ... mmand-line
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»