Aller au contenu

Performances

La vitesse à laquelle go-slides génère une présentation, et avec quelle mémoire, mesurées face à marp-cli sur la même machine.

Les chiffres PPTX ci-dessous concernent la v0.5.0 et ceux du PDF vectoriel la v0.4.0. Le premier tableau concerne la v0.3.0, la version précédente, qui fait le rendu des diapositives en parallèle et n’analyse ses polices qu’une fois (go-slides/slides#11).

go-slides et marp-cli 4.5.1 ont été lancés en sous-processus sur les mêmes présentations, sur un Apple M4 Max (16 CPU) avec une charge moyenne sur 1 minute inférieure à 8, en cinq tours entrelacés après un échauffement. Le temps est la médiane du temps écoulé ; la mémoire est le pic de toute l’arborescence de processus (marp-cli pilote un Chrome, dont les processus sont comptés).

PrésentationSortiego-slidesmarp-climémoire go-slidesmémoire marp-cli
100 diapositivesHTML36 ms315 ms47 Mio140 Mio
100 diapositivesPDF1,14 s1,88 s242 Mio1 509 Mio
100 diapositivesPNG, toutes les diapositives0,97 s5,44 s225 Mio1 354 Mio
100 diapositivesPPTX3,39 s8,03 s530 Mio1 373 Mio
gaia, 20 diapositivesPDF283 ms1,57 s154 Mio1 315 Mio
mathématiques et code, 20 diapositivesPNG, toutes les diapositives250 ms2,32 s168 Mio1 286 Mio

PDF vectoriel

Depuis la v0.4.0, le PDF est dessiné en vectoriel (voir Ligne de commande). Même machine et même méthode, le 2026-10-19 :

Présentationgo-slidesmarp-cliv0.3.0taille go-slidestaille marp-clitaille v0.3.0
100 diapositives306 ms1 763 ms1 147 ms758 Kio837 Kio10,0 Mio
gaia, 20 diapositives93 ms1 546 ms285 ms32 Kio66 Kio582 Kio
mathématiques et code, 20 diapositives140 ms1 643 ms294 ms124 Kio335 Kio638 Kio

Mémoire pour le PDF de 100 diapositives : 158 Mio, contre 1 512 Mio pour marp-cli ; temps CPU : 0,9 s contre 2,7 s.

Les chiffres de la v0.4.0 pour le PDF de 100 diapositives ont été mesurés le 2026-10-19 à 21 h 29, avec une charge moyenne sur 1 minute de 7,7, sur trois tours : go-slides 306 ms, 758 Kio et 158 Mio ; marp-cli 1 838 ms, 837 Kio et 1 512 Mio.

PPTX modifiable

Depuis la v0.5.0, le PPTX est composé de zones de texte, de formes et d’images (voir Ligne de commande). Mesuré le 2026-10-19 à 22 h 51, avec une charge moyenne sur 1 minute de 7,1, sur trois tours :

Présentationgo-slidesmarp-clitaille go-slidestaille marp-climémoire go-slidesmémoire marp-cli
100 diapositives348 ms7 795 ms760 Kio7,2 Mio204 Mio1 370 Mio
gaia, 20 diapositives112 ms4 608 ms893 Kio4,8 Mio
mathématiques et code, 20 diapositives207 ms2 780 ms842 Kio1,5 Mio

Pour la présentation de 100 diapositives, la v0.4.0 demandait 4,7 s, 4,8 Mio et 540 Mio. Le PPTX de marp-cli contient des images. L’essentiel de la taille d’une présentation modifiable tient aux polices intégrées.

Pourquoi c’est rapide

  • Aucun navigateur à démarrer. marp-cli lance Chrome pour chaque export PDF, image et PPTX ; go-slides fait le rendu avec go-webengine dans son propre processus.
  • Les diapositives sont rendues en parallèle, quatre à la fois par défaut, et chaque image est écrite dès que son tour vient : une longue présentation n’est jamais conservée en mémoire sous forme d’images.
  • Les polices sont analysées une seule fois par processus, et non une fois par diapositive.

Là où il ne gagne pas

  • La taille du PDF, en v0.3.0. Chaque diapositive était une image dans le PDF : 10 Mio contre 837 Kio pour la présentation de 100 diapositives. Le PDF vectoriel ci-dessus est plus petit que celui de marp-cli.
  • Le temps CPU sur les grosses présentations. Quatre workers consomment plus de CPU que ne le laisse voir le temps écoulé : en v0.3.0, 3,2 s contre 2,7 s pour marp-cli sur le PDF de 100 diapositives (0,9 s pour le PDF vectoriel).
  • La mémoire est une borne supérieure pour marp-cli : les processus de Chrome partagent des pages que la somme compte dans chacun d’eux. Son plus gros processus pris isolément occupe 220 à 320 Mio.

La méthode, chaque présentation et chaque mode, ainsi que les commandes permettant de reproduire les chiffres, se trouvent dans BENCHMARKS.md.

Créée le par tannevaled

Modifiée le par tannevaled