Я ищу Java Profiler для использования в среде с очень высоким спросом, будь то коммерческий или бесплатный, который отвечает всем следующим требованиям:
- Легкая интеграция с кодом (без перекомпиляции со специальными опциями, без перехвата кода и т.д.). Отбрасывание определенных профилировщиков .jars вместе с кодом приложения в порядке.
- Должна быть возможность подключения/отключения к JVM без перезапуска приложения.
- Когда профилирование неактивно, никакого влияния на производительность
- Когда профилирование активно, незначительное влияние на производительность. Очень небольшое ухудшение является приемлемым.
- Должен делать все "ожидаемые" вещи, которые делает профайлер, - время, проведенное в каждом методе, для поиска горячих точек, распределения объектов/профилирования памяти и т.д.
По сути, мне нужно что-то, что может стоять бездействующим в производстве, когда все в порядке, не зная и не заботясь о том, что оно есть, но затем сможет подключиться к нему (и ухудшить производительность), чтобы точно определить трудные проблемы горячие точки и проблемы синхронизации.