Когда вы выполняете профилирование, вы должны стараться максимально точно воспроизвести производственную среду. Различия в аппаратном обеспечении (количество ядер, памяти и т. Д.) И программном обеспечении (ОС, версия JVM) могут сделать ваши результаты профилирования такими же уникальными, как среда выполнения.
Например, то, что выглядит как узкое место ЦП, которое стоит оптимизировать на локальном компьютере, может полностью исчезнуть или превратиться в узкое место на диске на рабочем сервере в зависимости от различий в ЦП.
Все современные профилировщики позволяют подключаться к удаленно работающей JVM, поэтому вам не нужно беспокоиться только о доступе к консоли.
Какой профилировщик вы решите использовать, будет зависеть от ваших потребностей и предпочтений. Некоторые профилировщики покажут вам «горячие точки», где ваш код тратит большую часть времени, и это часто хорошие кандидаты для оптимизации.
Я предпочитаю использовать JProfiler за его широкие возможности и хорошую производительность. Ранее я использовал YourKit, но переключился на JProfiler из-за его функций профилирования памяти и потоков.