JVisualVM CPU Profiling для удаленной JVM

Когда я присоединяю JVisualVM к удаленной JVM через JMX, я вижу вкладку "Sampler" вместо вкладки "Profiler". Я знаю, что есть разница между сэмплированием и профилированием. Меня больше интересует профилирование (особенно CPU Profiling).

Доступен ли "Профилировщик" в JVisualVM для удаленной JVM? Если это так, пожалуйста, укажите конкретные флаги запуска JVM. Если это не доступно, каковы альтернативы? Пожалуйста, поймите, что я не могу войти на удаленные хосты.

1 ответ

Решение

VisualVM не поддерживает удаленное профилирование, как вы можете найти в его исходном коде:

    boolean supportsProfiling(Application application) {
        // Application already being profiled (Startup Profiler)
        if (application == getProfiledApplication()) return true;

        // Remote profiling is not supported
        if (application.getHost() != Host.LOCALHOST) return false;

        ...

Фактически, выборка - это хорошая альтернатива интеллигентному профилировщику, если вы хотите найти узкие места, потребляющие процессор.

Какой инструмент лучше, зависит от ваших требований, но обсуждение инструмента выходит за рамки этого вопроса и не по теме переполнения стека.

Другие вопросы по тегам