Вот пример диаграммы вызовов AQTime.Последовательности вызовов AQTime можно собирать либо динамически (из запущенной программы), что означает, что вам нужно активировать путь кода, который вы хотите отобразить (убедитесь, что какое-то меню или кнопка, которую вы можете щелкнуть в пользовательском интерфейсе, вызывает этот код), а затем вы можете построить графикэто, или они могут быть собраны статически.Динамический может показаться более трудоемким, и вы можете подумать, что статический анализ лучше, и в некотором смысле статический анализ лучше, но диаграммы последовательности динамических вызовов на самом деле "то, что действительно произошло за один конкретный прогон", тогда как статический анализ дает "чтосинтаксический анализатор может выяснить, что он всегда верен, независимо от того, будет ли этот путь кода выполняться вами или вашим клиентом вообще ".На самом деле, я рекомендую использовать оба пути и сравнивать их, чтобы увидеть, что вы изучаете.
AQTime pro довольно дорог, но я не знаю олюбые бесплатные альтернативы.(Нет, я не работаю на SmartBear или Embarcadero.)Я профессиональный разработчик, и я считаю, что такие инструменты стоят своей цены.Ваш вызов.
Обычно я использую функцию последовательности вызовов при выполнении из профилировщика производительности, чтобы я мог получить некоторые значения времени (на приведенной ниже схеме показано Time: #.## msec
, поскольку данные были собраныпрофилировщик производительности, динамически, а не профилировщик статического анализа, который не знает, сколько времени занимает выполнение функции).