Определение того, какие части моей Java-программы нуждаются в оптимизации - PullRequest
4 голосов
/ 14 февраля 2011

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

Я знаю основные основы оптимизации кода, но у меня есть большое количество строк и очень сложный исходный код (классы Java).

Можно ли оптимизировать мой код с помощью профилировщика Java?

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 14 февраля 2011

Оптимизация производительности - да, профилировщик может помочь.По крайней мере, он может показать вам те области в вашем приложении, которые занимают неожиданное количество процессорного времени.

Но прежде чем начинать применять изменения - постарайтесь не проводить микрооптимизацию.Посмотрите сначала на улучшение алгоритмов.Иногда мы используем вложенные циклы for, в то время как задача может быть выполнена за один цикл (линейное время).Дважды проверьте, используете ли вы правильные типы коллекций.Затем посмотрите, случайно ли вы создали больше объектов, чем необходимо (создание объектов в циклах - типичная причина проблем с производительностью).

3 голосов
/ 14 февраля 2011

Что вы имеете в виду, оптимизируя свой код?Хотите реорганизовать свой код, чтобы упростить его?В этом случае я предлагаю вам использовать IDE, чтобы помочь в рефакторинге кода.

Если вы хотите минимизировать потребление памяти / ЦП, я бы предложил вам использовать профилировщик, такой как VisualVM или YourKit, чтобы определить, где используются ресурсы..

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

0 голосов
/ 14 февраля 2011

Это несколько инструментов для статического анализа кода (для выполнения стиля кода / согласования кода / передового опыта / "оптимизации" ошибок в вашем коде).

Я бы рекомендовал использовать Сонар .Он охватывает их все и прост в настройке - даже на локальной машине (распакуйте и запустите).Лучше всего использовать с проектами maven, но также возможно для NON maven проектов.

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