Java-приложение замедляется с течением времени - PullRequest
0 голосов
/ 07 марта 2012

У меня есть приложение Pro * C, которое вызывает модуль Java с использованием JNI. Производительность приложения снижается при непрерывном запуске в течение одного или двух дней. Использование памяти остается в допустимом диапазоне. Подскажите, пожалуйста, как мне исследовать проблему с производительностью?

Ответы [ 2 ]

1 голос
/ 07 марта 2012

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

Это может быть структура данных с O(n), которая растет по мере использования.

0 голосов
/ 07 марта 2012

Для начала я бы сделал следующее:

  • Воспроизведите проблему на тестовой платформе
  • Возьмите дампы потока / памяти: см. здесь
  • Используя visualvm , чтобы увидеть, как выглядит куча памяти
  • Запустите приложение с -verbose:gc (см. Также здесь ) и проверьте, соответствует ли частотасборок мусора увеличивается, что может указывать на утечку памяти).
...