2011-02-17 5 views
2

В настоящее время есть некоторые профилировщики, которые обещают профилировать одновременное поведение выполнения программы, чтобы понять выполнение потоковой передачи.Особенности профилирования поведения параллельной программы в Java

Я черта коллекции, которые были бы полезны для профайлер Java концентрируясь на профилирование параллелизма только:

Что я собрал до сих пор:

  • строительства ожидает, для графики, чтобы обнаружить потенциал ТУПИКИ измерение

  • времени доступа к ресурсам (на основе данных структур и т.д.)

  • показывают состояния каждого потока (живой, прерванный, мертвый)

  • , какой поток называется какой поток для доступа к общим RESSOURCES (ожидание, заблокирован, и т.п.)

Какие идеи у вас есть? Лично я стремлюсь раскрыть некоторые плохие привычки программирования при работе с параллелизмом в Java.

+0

У вашего KKK есть некоторые из этих функций. Для других функций я добавляю код для измерения таймингов и сообщает, какой поток ждет другого и что он делает. (Таким образом, я могу запустить его в процессе производства) –

ответ

1

Сводная статистика для каждого потока: сколько времени тратится в каждом штате (работает, работает, блокируется и т. Д.).

0

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

0

Любой

  • Спорный монитор или блокировать
  • Failed CAS
  • Летучие читает и пишет

Что бы фантастическим было бы способ увидеть общие данные, которые не защищенные по-разному, и поэтому был расист. Трудно сделать, хотя.

0

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

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

+0

Спасибо, это очень полезный намек! – BrokenClockwork

Смежные вопросы