Перейти к содержимому

Производительность

Как быстро go-slides собирает презентацию и сколько памяти тратит, в сравнении с marp-cli на той же машине.

Данные по PPTX ниже относятся к v0.5.0, а данные по векторному PDF — к v0.4.0. Первая таблица относится к v0.3.0, предыдущему выпуску, который рисует слайды параллельно и разбирает шрифты один раз (go-slides/slides#11).

go-slides и marp-cli 4.5.1 запускались как подпроцессы на одних и тех же презентациях, на Apple M4 Max (16 процессоров) при средней загрузке за минуту ниже 8, пять чередующихся раундов после прогрева. Время — медиана реального времени; память — пик всего дерева процессов (marp-cli управляет Chrome, процессы которого учитываются).

ПрезентацияФорматgo-slidesmarp-cliпамять go-slidesпамять marp-cli
100 слайдовHTML36 мс315 мс47 МиБ140 МиБ
100 слайдовPDF1,14 с1,88 с242 МиБ1 509 МиБ
100 слайдовPNG, каждый слайд0,97 с5,44 с225 МиБ1 354 МиБ
100 слайдовPPTX3,39 с8,03 с530 МиБ1 373 МиБ
gaia, 20 слайдовPDF283 мс1,57 с154 МиБ1 315 МиБ
математика и код, 20 слайдовPNG, каждый слайд250 мс2,32 с168 МиБ1 286 МиБ

Векторный PDF

В v0.4.0 PDF рисуется векторами (см. Командная строка). Та же машина и метод, 2026-10-19:

Презентацияgo-slidesmarp-cliv0.3.0размер go-slidesразмер marp-cliразмер v0.3.0
100 слайдов306 мс1 763 мс1 147 мс758 КиБ837 КиБ10,0 МиБ
gaia, 20 слайдов93 мс1 546 мс285 мс32 КиБ66 КиБ582 КиБ
математика и код, 20 слайдов140 мс1 643 мс294 мс124 КиБ335 КиБ638 КиБ

Память для PDF из 100 слайдов: 158 МиБ против 1 512 МиБ у marp-cli; процессорное время 0,9 с против 2,7 с.

Данные v0.4.0 для PDF из 100 слайдов измерены 2026-10-19 в 21:29 при средней загрузке за минуту 7,7, за три раунда: go-slides 306 мс, 758 КиБ и 158 МиБ; marp-cli 1 838 мс, 837 КиБ и 1 512 МиБ.

Редактируемый PPTX

Начиная с v0.5.0 PPTX состоит из текстовых блоков, фигур и картинок (см. Командная строка). Измерено 2026-10-19 в 22:51 при средней загрузке за минуту 7,1, за три раунда:

Презентацияgo-slidesmarp-cliразмер go-slidesразмер marp-cliпамять go-slidesпамять marp-cli
100 слайдов348 мс7 795 мс760 КиБ7,2 МиБ204 МиБ1 370 МиБ
gaia, 20 слайдов112 мс4 608 мс893 КиБ4,8 МиБ
математика и код, 20 слайдов207 мс2 780 мс842 КиБ1,5 МиБ

Для презентации из 100 слайдов v0.4.0 тратил 4,7 с, 4,8 МиБ и 540 МиБ. PPTX у marp-cli состоит из картинок. Большая часть размера редактируемой презентации приходится на встроенные шрифты.

Почему это быстро

  • Не нужно запускать браузер. marp-cli запускает Chrome для каждого экспорта PDF, изображений и PPTX; go-slides рисует с помощью go-webengine внутри собственного процесса.
  • Слайды рисуются параллельно, по четыре одновременно по умолчанию, и каждое изображение записывается, как только подходит его очередь: длинная презентация никогда не хранится в памяти в виде изображений.
  • Шрифты разбираются один раз на процесс, а не на каждый слайд.

Где он не выигрывает

  • Размер PDF в v0.3.0. Каждый слайд был изображением в PDF: 10 МиБ против 837 КиБ для презентации из 100 слайдов. Векторный PDF выше меньше, чем у marp-cli.
  • Процессорное время на больших презентациях. Четыре рабочих потока тратят больше процессорного времени, чем показывает реальное: в v0.3.0 — 3,2 с против 2,7 с у marp-cli для PDF из 100 слайдов (0,9 с для векторного PDF).
  • Память у marp-cli — верхняя оценка: процессы Chrome делят страницы, которые сумма учитывает в каждом. Самый большой отдельный процесс — 220–320 МиБ.

Метод, каждая презентация и режим, а также команды для воспроизведения результатов приведены в BENCHMARKS.md.

Created on by tannevaled

Modified on by tannevaled