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