reckfellENGINE

Hotspot: CPU-профиль Linux perf

Выбор процесса, запись, чтение сэмплов и неполные стеки.

На этой странице

Hotspot показывает CPU-профили Linux perf. Используйте его для поиска затрат в native C/C++-коде Reckfell 1.0.0; CPU-профиль не является захватом GPU-кадра или полным деревом вызовов управляемого C#.

Подготовьте воспроизводимый запуск

Нужны Linux, рабочий perf, Hotspot, повторяемое действие в проекте и точный исполняемый файл с подходящими отладочными символами. Сохраните бинарник, библиотеки и исходники, соответствующие записи. После пересборки адреса могут указывать уже на другой код.

Для показательного измерения сохраните оптимизацию и настройки рендерера, которые исследуете. Сборка dev_build=yes может выполнять дополнительные проверки и использовать другую оптимизацию. debug_symbols=yes включает native-символы, но сам по себе не задаёт производительность релизной конфигурации. См. порядок native-профилирования и сборку исходников. Отдельные символы, если включены, должны оставаться доступными вместе с соответствующими артефактами.

Для игровой нагрузки выберите процесс игры, для действий редактора — редактор. Project Manager может запустить другой процесс. Сверьте путь и аргументы вместо выбора наибольшего PID. --path задаёт каталог с project.reckfell; --editor добавляйте только для измерения редактора. Не используйте --quit для установившейся нагрузки: он завершает процесс после первой итерации главного цикла.

Запишите и откройте профиль

Замените /absolute-пути ниже. Путь записи намеренно отделён от проекта. Команда запускает игру, а не редактор:

Командная строка
perf record -o /absolute/capture/perf.data --call-graph dwarf -- /absolute/Source/bin/reckfell.linuxbsd.editor.x86_64 --path /absolute/project
hotspot /absolute/capture/perf.data

Имя бинарника — пример для выбранной сборки редактора; укажите фактический результат сборки. Сначала создайте каталог записи. Выполните действие, штатно закройте игру, затем запустите вторую команду. Ожидаемый результат: непустой perf.data и сэмплы нужного процесса. Для других параметров записи используйте документацию установленной версии perf.

Hotspot также умеет запускать процесс или подключаться через Record Data. Запуск включает стартовую нагрузку; используйте подключение или фильтр временного интервала, если исследуете другое действие. Разрешения записи зависят от Linux-хоста: разбирайте конкретную ошибку perf вместо постоянного запуска всей IDE/профилировщика от root. См. запись и диагностику Hotspot.

Прочитайте результат

Перед чтением Flame Graph выберите нужные процесс, поток и временной интервал. При обычном on-CPU sampling более широкий стек означает большую долю измеренных CPU-затрат выбранного события, а не измеренную длительность одного вызова. Inclusive включает вызываемые функции; self/exclusive исключает их. Перед изменением общей утилиты проверьте вызывающий код: много дешёвых вызовов и несколько дорогих требуют разных решений.

Один CPU sampling не объясняет время сна, ожидания GPU или блокировки на I/O. Сопоставьте его с измерением кадров, а при необходимости — подходящим захватом ожиданий/трассировки. Малое число CPU-сэмплов само по себе не доказывает ограничение GPU. При сравнении до/после сохраняйте действие, сборку, качество и параметры записи; изменение времени кадра указывайте отдельно от процентов сэмплов.

Найдите причину неполных данных

СимптомСледующая проверка
Нет сэмплов / не то приложениеОшибка perf, путь, PID, интервал и фильтр процесса
Неизвестные функцииСоответствующие бинарник/библиотеки, наличие символов и пути их поиска
Обрезанные стекиПоддержка раскрутки и размер копируемого DWARF-стека; увеличение повышает объём/накладные расходы записи
Потерянные сэмплыПредупреждения записи, частота событий и нагрузка на хранилище; повтор после устранения причины
Нет названий C#-методовNative CPU-профилирование не подтверждает разрешение managed JIT-символов

Границы проверки

Параметры движка и выбор процесса сверены с текущими исходниками и сохранённым Windows CLI-подтверждением. Порядок работы Hotspot/perf проверен по первичной документации. Захват Linux, разрешение символов, интерфейс профилировщика, managed-стеки, GPU-время и ускорение здесь не проверены. Source, Runtime и SDK не изменены.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.