16-потоковое / 16-ядерное профилирование кода с помощью Java / Eclipse TPTP в системе Linux - PullRequest
1 голос
/ 05 октября 2011

Я разработал хороший многопоточный генетический алгоритм на Java, который работает на 16-ядерной системе с CentOS и 128 ГБ ОЗУ.

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

Итак, я установил VNC и Eclipse 3.6SR2 на сервер и установил плагин TPTP.

ПРОБЛЕМА: Самая большая проблема заключается в том, что не похоже, что затмение использует более одного ядра, когда я выполняю TPTP «анализ времени выполнения» (я проверил, используя «top»). Обычно, когда программа запускается из командной строки, она использует столько ядер, сколько имеется потоков в программе.

Есть ли способ исправить это в конфигурации eclipse?

Ответы [ 2 ]

0 голосов
/ 06 октября 2011

Отказ от ответственности: Моя компания разрабатывает JProfiler

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

На рынке представлено несколько мощных профилировщиков Java.Наиболее известный бесплатный вариант - VisualVM , а коммерческая альтернатива с гораздо более мощными аналитическими возможностями в области многопоточности и анализа конфликтов монитора - JProfiler - есть полностью функциональный бесплатныйиспытание.

0 голосов
/ 05 октября 2011

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

Затем вы можете открыть SSH-туннель с портом, где работает агент, и вы можете удаленно профилировать ваше приложение.У него довольно хорошая документация и здоровое сообщество на их форумах.И, на мой взгляд, YourKit отлично подходит для многопоточных приложений, я его часто использую.

Нет необходимости в VNC и установке Eclipse на рабочем сервере.

...