Ускорение Java - PullRequest
       27

Ускорение Java

14 голосов
/ 07 октября 2008

Это на самом деле два вопроса, но они очень похожи, и для простоты я решил, что я просто свожу их вместе:

  • Во-первых : Принимая во внимание устоявшийся Java-проект, какие есть приличные способы ускорить его, помимо простой оптимизации в коде?

  • Во-вторых : Каковы хорошие способы значительно повысить производительность при написании программы на Java?

Пожалуйста, держитесь подальше от общих методов оптимизации, если они не специфичны для Java .

Я спрашивал об Python и Perl ранее. Для Java мне интересно, какие хорошие советы / хитрости существуют для улучшения производительности и есть ли особенно хорошие профилировщики Java.

Ответы [ 15 ]

1 голос
/ 08 октября 2008

Java 1.6_07 + поставляется с собственным профилировщиком. Это называется Java VisualVM. Просто введите jvisualvm в командной строке, если у вас есть% JAVA_HOME% / bin в вашей переменной PATH.

1 голос
/ 08 октября 2008

Есть одна вещь, которую вы должны сделать с самого начала проекта, которая окажет огромную помощь: написать читабельный код.

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

1 голос
/ 07 октября 2008

Я видел, что иногда просто предоставление JVM большего количества кучи памяти помогает вялому приложению. Это контролируется с помощью опций -xmx и -xms JVM при запуске.

0 голосов
/ 05 ноября 2008

Может показаться неуместным, но на сайте разработчиков Android есть список подсказок по скорости . Он работает на телефоне с нестандартным байт-кодом dalvik, но многие из перечисленных здесь советов универсально применимы к Java в целом.

0 голосов
/ 08 октября 2008

Вот (более старый) документ Питера Сестофта, который стоит прочитать: Производительность в Java . Некоторые из советов, вероятно, больше не верны, так как Java стала намного лучше с более поздними версиями в оптимизации. Но там все еще есть хороший набор драгоценных камней, которые можно использовать и попробовать, когда профилировщик найдет то, что вы не можете сделать каким-либо другим способом (т. Е. Изменить алгоритмически).

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