Параметры, передаваемые по имени являются хорошим вариантом (предположение языка, который поддерживает их) для устранения неоднозначности долго (или даже короткий!) списки параметров, также позволяя (в случае конструкторов) свойствам класса быть неизменными, не налагая требование для разрешения его существовать в частично созданном состоянии.
другая опция я искал бы в выполнении этого вида, осуществляют рефакторинг, были бы группы связанных параметров, которые могли бы быть лучше обработаны как независимый объект. Используя Прямоугольный класс из более раннего ответа как пример, конструктор, который берет параметры для x, y, высоты и ширины, мог факторизовать X и Y в Точечный объект, позволив Вам передать три параметра конструктору Rectangle. Или пойдите немного далее и сделайте его двумя параметрами (UpperLeftPoint, LowerRightPoint), но это было бы более радикальным рефакторингом.
Java 1.6 поставляется с элементарным профилировщиком: jvisualvm
. Он находится в том же каталоге, что и java
и javac
.
Вы можете взглянуть на ответы на этот вопрос: java-профилировщики с открытым исходным кодом
Netbeans имеет довольно приличный встроенный профилировщик Java.
Хотя и не OpenSource, мне лично очень нравится YourKit - он имеет отличную визуализацию и действительно прост в использовании.
JRockit Mission Control , это не открытый исходный код, но это коммерческий профилировщик, который вы можете использовать для разработки. Здесь вы можете прочитать, что нового в последней версии.
Инструмент jvisualvm в последней версии Java 6 JDK содержит профилировщик (из Netbeans) и может подключаться к уже запущенной программе, что упрощает выполнение начальных исследований.
Предположительно Eclipse TPTP может присоединить свой профилировщик к процессу Java, но мне так и не удалось заставить его работать нормально. NetBeans Profiler, безусловно, проще всего подключить к внешним процессам.
Если у вас есть данные профилирования или дамп кучи, я выбираю яд для анализа Eclipse Memory Analyzer .
Мне очень понравился Jrat для профилирования Java: http://jrat.sourceforge.net/
Бесплатная утечка памяти C с открытым исходным кодом (и другой детектор), работающая в Windows: duma ( http://duma.sourceforge.net/ ). Его не так просто использовать, как Valgrind (вам нужно отредактировать свои источники, и в нем нет изящной опции «не сообщать об этом» - я все равно ее еще не нашел). Все варианты вроде Valgrind для Windows являются коммерческими (IBM Purify кажется лучшим, но лицензия довольно дорогая)
Я занимаюсь оптимизацией C для Windows с помощью инструментов gcc, gcov, как мне кажется, используется для профилирования (может быть, ошибаюсь , давно не пользовался)
Не все инструменты имеют открытый код, но вы можете найти список всех доступных инструментов на http://javatoolbox.com/categories/profiling-debugging
Каждый Инструмент упоминается с кратким описанием того, что он предлагает.
Попробуйте сделать "стакшоты". Это альтернатива без профилировщика .
Это не просто еще одно красивое лицо, но оно дает результаты.