Бенчмарки
Для измерения производительности ядра используется
Criterion. Бенчмарки находятся в
crates/light-core/benches/performance.rs и покрывают три ключевых сценария:
vdom/diff_1000_elements_10_changes— построение патча для дерева примерно из 1000 элементов при изменении 10 текстовых узлов;layout/flex_1000_elements— раскладка дерева из вложенных flex-контейнеров;render/rects_1000— отрисовка 1000 прямоугольников в RGBA-буфер 800×600;render/text_100— отрисовка 100 строк текста системным шрифтом.
Запуск
Все бенчмарки:
cargo bench -p light-fw-core --bench performance
Быстрый прогон с меньшим числом измерений:
cargo bench -p light-fw-core --bench performance -- \
--warm-up-time 1 --measurement-time 3 --sample-size 20
Только проверка сборки бенчмарков (используется в CI):
cargo bench --no-run
На Windows из-за ограничений файла подкачки добавьте -j 2:
cargo bench --no-run -j 2
HTML-отчёт Criterion сохраняется в target/criterion/.
Результаты
Замеры выполнены 21 октября 2026 года на Intel Core i5-13500 под Windows (x86_64-pc-windows-msvc, rustc 1.99.0). Параметры прогона: 1 секунда прогрева, 3 секунды измерения, 20 выборок.
| Бенчмарк | Среднее время | Доверительный интервал |
|---|---|---|
| VDOM diff, 1000 элементов, 10 изменений | 100.97 µs | 99.09–102.79 µs |
| Раскладка flex-дерева из 1000 элементов | 142.71 µs | 140.19–145.64 µs |
| Отрисовка 1000 прямоугольников | 11.89 ms | 11.72–12.03 ms |
| Отрисовка 100 текстовых строк | 9.42 ms | 9.26–9.60 ms |
Абсолютные значения зависят от CPU, ОС, системного шрифта и фоновой нагрузки. Сравнивать имеет смысл результаты, полученные на одной машине в одинаковых условиях.
Бенчмарк текста использует первый найденный системный шрифт (Segoe UI, DejaVu Sans, Liberation Sans или Arial). Если шрифт не найден, текстовый сценарий пропускается, а остальные бенчмарки выполняются как обычно.
CI
CI не запускает сами замеры, чтобы избежать нестабильности из-за общего
окружения. В задаче test выполняется только компиляция бенчмарков через
cargo bench --no-run, поэтому поломка API или конфигурации Criterion
обнаруживается до релиза.