Подтвердить что ты не робот

Поиск источника создания темы в приложении Java

Я работаю над Java-приложением, которое имеет проблему с потоками.

При использовании приложений в течение некоторого времени с подключенным профилировщиком Netbeans я вижу, что несколько потоков создаются. Большинство из них заканчиваются в .5 seconds. Я мог найти только SwingWorkers, используемые в приложении.

Кроме того, большинство потоков, отображаемых профилировщиком, являются нормальными потоками, а не SwingWorkers. Если эти потоки не были созданы SwingWorker косвенно, я подозреваю, что какая-то библиотека, которую использует приложение, создает их.

Теперь я хотел бы удалить эту проблему. Но я не мог найти способ определить источник создания потоков. Если вы можете предложить другой профайлер/инструмент, с помощью которого я могу найти источник (метод) создания потоков.

4b9b3361

Ответ 1

Если вы используете Eclipse и его отладчик, вы можете попробовать следующее:

  • Импортировать код в проект Java.
  • Ctrl-Shift-T (Open Type), введите "Thread". Вызывается редактор двоичного источника для класса Thread.
  • Выберите все конструкторы потоков в представлении "Контур", используйте контекстное меню "Точка перехвата меток". Это создает точки останова для конструкторов.
  • Запуск и отладка.

Альтернативно

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

Ответ 2

JProfiler может это сделать. В представлении монитора потока показана трассировка стека, где был создан поток - если в это время была активна запись ЦП:

enter image description here

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