2 KiB
Sampling Profiler
Данный профайлер используется для поиска узких мест в эмулируемых программах (играх).
Если вы уже знакомы с профайлером Visual Studio, то понять эту реализацию профайлера будет проще.
Способ профайлинга
Профайлер работает в своем потоке.
После запуска профайлера он начинает с определенным интервалом программного таймера Gekko (TBR) опрашивать значение регистра Program Counter.
Периодичность опроса задается параметрами профайлера, обычно периодичности 1 msec бывает достаточно.
Пара сэмплированных значений TBR + PC сохраняются в Json.
После завершения работы профайлера накопленные данные сериализуются в Json файл.
Анализ полученных данных
Полученные данные загружаются в приложение RnD Profiler.
Приложение разбивает адресное пространство на сегменты размером 32 байта и формирует список частоты и длительности нахождения процессора в данном сегменте.
Частота нахождения получается по значению Program Counter, а длительность по значению TBR.
Таким образом можно понять где эмулируемая программа выполнялась дольше/чаще всего.
Дополнительно можно загрузить файл с символьной информацией (Map), чтобы вместо адресов видеть имена функций.