Very Sleepy: CPU samples и native стеки
Целевой PID, symbols, inclusive/exclusive и диагностика неполного профиля.
Very Sleepy — Windows CPU sampling profiler. Он подходит для поиска дорогих native стеков; не измеряет GPU render passes и не заменяет managed profiler для C# логики. Подготовьте целевой бинарник и соответствующие symbols по общему руководству.
Захват нужного процесса
- Запустите Reckfell-проект с явным
--pathк папке сproject.reckfell; для редактора добавьте--editor. Сначала убедитесь, что воспроизводится нужное действие. - Выберите целевой PID в Very Sleepy. Project Manager и запущенная из него игра могут быть разными процессами. Для короткого startup сценария используйте запуск приложения из profiler вместо позднего attach.
- Начните захват нужных потоков, повторите действие и завершите через Stop. Сохраните
.sleepysession вместе с параметрами запуска. Возможности запуска/сохранения описаны в официальном wiki.
Чтение результата
В Functions сравните Inclusive с Exclusive, затем откройте Call Stacks и проверьте вызывающий код. Inclusive включает callees; его нельзя складывать по всем строкам как независимое время кадра. Начните без фильтра, затем выделите свой executable/native DLL по Module. Фильтр скрывает работу из представления, но не доказывает отсутствие затрат в драйвере или ОС. Эти представления описаны в User Interface.
Если вместо функций показаны адреса, проверьте symbols именно этой сборки и журнал resolving. Не считайте строки другого source revision правильными только по одинаковому имени файла. Для уже сохранённого session см. Late Symbol Resolution; MinGW symbols требуют соответствующего workflow.
Если профиль бесполезен
| Симптом | Проверка |
|---|---|
| Почти только idle/Project Manager | Правильный PID и реальный game/editor target |
| Нет samples нужного действия | Длительность захвата, выбранные потоки и воспроизводимость |
| Только адреса/unknown | Соответствие binary/symbols, путь поиска и формат toolchain symbols |
| Большой процент driver/system code | Проверьте исходный полный профиль; CPU sampling не показывает длительность GPU pass |
Повторите одинаковое действие и сравните абсолютные затраты. Уменьшение доли функции само по себе не доказывает ускорение.
Границы проверки
Процедура сверена с официальным wiki и параметрами Reckfell 1.0.0. Локально проверен только CLI выбор target и первая итерация --quit; Very Sleepy capture, attach, GUI, symbols и результаты производительности здесь не выполнялись. Движок, Runtime и SDK не менялись.