Счётчик FPS и профилирование отрисовки
В Senzoukria есть два показания частоты кадров: глобальный счётчик, включаемый по Ctrl+Shift+F, и счётчик на каждом графике рядом с ценовой осью, а также профилировщик проходов отрисовки, чьи замеры уходят в консоль в разработке или по явному согласию.
Senzoukria · Документация · Обновлено: сентябрь 2026
Где найти
- Глобальный счётчик
- Ctrl+Shift+F включает и выключает; выбор запоминается между запусками
- Счётчик графика
- Вверху графика, слева от ценовой оси, обновляется каждые 500 мс
- Чёткость отрисовки
- Настройки → Производительность → 1×, 1,5× или 2×; по умолчанию 1,5×
- Вывод профилировщика проходов
- Строки консоли с меткой [fp-perf], раз в секунду, в сборках для разработки или по согласию
Что это такое
Глобальный счётчик FPS — диагностическая полоса, которую включают на тридцать секунд, чтобы посмотреть число. Он показывает кадры в секунду за последнюю секунду, худшее время кадра за эту секунду в миллисекундах, определённую частоту обновления экрана (медиана 60 интервалов между кадрами, измеренных при монтировании) и, после возврата фокуса окну, средний и минимальный FPS, измеренные, пока окно было в фоне. Последняя цифра отвечает на вопрос, не притормаживает ли приложение за другой программой. Когда Windows запрашивает уменьшение анимации, полоса сообщает «анимации ВЫКЛ (Windows)», потому что фон в этом случае заморожен намеренно.
Счётчик графика измеряет другое: с сентября 2026 года он считает кадры, которые главный поток действительно выдаёт на экран, пока график виден, а не число перерисовок. Поэтому он следует частоте панели (60, 100, 144, 240) и падает только при настоящем рывке. Счётчик перерисовок остался в логах [fp-perf], под именем painted=. Пауза длиннее секунды без кадра — например, скрытый график или свёрнутое окно — перезапускает измерение, а не засчитывается как зависание; при этом сам график рисует, только когда что-то меняется, через цикл кадров, который держит не более одного отложенного кадра и ни одного, пока график скрыт.
Показания и пороги
| Показание | Зелёный | Жёлтый | Красный |
|---|---|---|---|
| Глобальный счётчик (относительно определённой частоты обновления) | ≥ 92 % частоты обновления | ≥ 70 % | ниже 70 % |
| Счётчик графика (относительно лучшего из последних 10 замеров) | ≥ 90 % недавнего пика и ≥ 50 fps | ≥ 70 % пика либо от 30 до 49 fps | ниже 70 % пика либо меньше 30 fps |
| Фоновая статистика | минимум ≥ 60 fps | минимум ниже 60 fps | — |
Настройки
| Настройка | По умолчанию | На что влияет |
|---|---|---|
| Чёткость отрисовки | 1,5× | Предел коэффициента пикселей холста. 1× вдвое уменьшает число пикселей на экранах HiDPI; 2× — самый чёткий и самый тяжёлый. Варианты: 1×, 1,5×, 2×. |
| Режим производительности | Сбалансированный | «Производительность» ставит 1×, «сбалансированный» — 1,5×, «точность» — 2× (вместе с другими параметрами). Ручное изменение любого параметра переводит режим в «ручной». |
| Логи производительности | Выключены в релизных сборках | Задайте в localStorage senzoukria.perfLogs значение 1 и перезагрузите, чтобы включить строки [fp-perf] в консоли релизной сборки. |
Профилирование проходов отрисовки
Каждый проход отрисовки рендерера футпринта (ячейки, профили, уровни GEX, маркеры новостей, коммит панели DOM, коммиты React) замеряется общим профилировщиком. Раз в секунду холст выгружает его и печатает в консоль строку с ранжированием: суммарные и средние миллисекунды на проход, худший проход, число коммитов React и стоимость панели DOM. Профилировщик не держит ссылок ни на холст, ни на React, а у открепляемых окон свой экземпляр, поэтому замеры разных окон никогда не смешиваются.
В распространяемых сборках эти логи молчат, потому что консоль WebView удерживает всё, что в неё пишут, а лог раз в секунду в течение часов стоит памяти. Они включены в npm run dev и могут быть включены на машине пользователя ключом согласия, указанным выше.
Ограничения и подводные камни
Как читать числа:
- Счётчик графика останавливается, а не показывает ноль: когда график скрыт или окно неактивно, измерение приостанавливается и начинается заново на следующем кадре.
- Цвета отсчитываются от недавнего пика, поэтому одни и те же 120 fps читаются зелёным на экране 120 Гц и жёлтым на 240 Гц.
- Определённая частота обновления — медиана интервалов между кадрами; на машине, которая не справляется, она может оказаться ниже реальной частоты панели.
- У глобального счётчика собственный цикл requestAnimationFrame; вне диагностики держите его выключенным.
- Фоновым замерам нужно, чтобы окно потеряло фокус и вернуло его; полоса показывает только последний период в фоне.
Связанные страницы
- Ценовая ось и знаки после запятой
- Экран загрузки истории
- Лучшие программы для торговли по order flow
- Скачать Senzoukria
Эта страница на других языках
Частые вопросы
- Как показать счётчик FPS?
- Нажмите Ctrl+Shift+F. Нажмите ещё раз или щёлкните ✕, чтобы скрыть. Состояние хранится под ключом senz.fpsMeter и восстанавливается при следующем запуске.
- Счётчик графика показывает 45 fps на мониторе 144 Гц. Что это значит?
- Это значит, что главный поток выдал 45 кадров за последнюю секунду, пока график был виден, — значит, что-то его тормозит. Цвет относителен: зелёный требует не менее 90 % от лучшего из десяти последних замеров и 50 fps, а всё ниже 30 fps красное при любом экране. Сравните с глобальным счётчиком, который сопоставляет цикл анимации с определённой частотой обновления.
- Где числа профилирования отрисовки?
- В консоли разработчика, строками [fp-perf] раз в секунду; доступны в сборках для разработки либо после установки в localStorage senzoukria.perfLogs значения 1 и перезагрузки.