Saltar al contenido

Rendimiento

Qué tan rápido construye go-slides una presentación y con cuánta memoria, medido frente a marp-cli en la misma máquina.

Las cifras de PPTX de abajo corresponden a v0.5.0 y las del PDF vectorial a v0.4.0. La primera tabla es de v0.3.0, la versión anterior, que renderiza las diapositivas de forma concurrente y analiza sus fuentes una sola vez (go-slides/slides#11).

go-slides y marp-cli 4.5.1 se ejecutaron como subprocesos sobre las mismas presentaciones, en un Apple M4 Max (16 CPU) con una carga media de 1 minuto inferior a 8, cinco rondas intercaladas tras un calentamiento. El tiempo es la mediana del tiempo real; la memoria es el pico de todo el árbol de procesos (marp-cli controla un Chrome, cuyos procesos cuentan).

PresentaciónSalidago-slidesmarp-climemoria de go-slidesmemoria de marp-cli
100 diapositivasHTML36 ms315 ms47 MiB140 MiB
100 diapositivasPDF1,14 s1,88 s242 MiB1509 MiB
100 diapositivasPNG, todas las diapositivas0,97 s5,44 s225 MiB1354 MiB
100 diapositivasPPTX3,39 s8,03 s530 MiB1373 MiB
gaia, 20 diapositivasPDF283 ms1,57 s154 MiB1315 MiB
matemáticas y código, 20 diapositivasPNG, todas las diapositivas250 ms2,32 s168 MiB1286 MiB

PDF vectorial

En v0.4.0 el PDF se dibuja en vectores (véase Línea de comandos). Misma máquina y mismo método, 2026-10-19:

Presentacióngo-slidesmarp-cliv0.3.0tamaño de go-slidestamaño de marp-clitamaño de v0.3.0
100 diapositivas306 ms1763 ms1147 ms758 KiB837 KiB10,0 MiB
gaia, 20 diapositivas93 ms1546 ms285 ms32 KiB66 KiB582 KiB
matemáticas y código, 20 diapositivas140 ms1643 ms294 ms124 KiB335 KiB638 KiB

Memoria del PDF de 100 diapositivas: 158 MiB, frente a 1512 MiB de marp-cli; tiempo de CPU de 0,9 s frente a 2,7 s.

Las cifras de v0.4.0 para el PDF de 100 diapositivas se midieron el 2026-10-19 a las 21:29, con una carga media de 1 minuto de 7,7, en tres rondas: go-slides 306 ms, 758 KiB y 158 MiB; marp-cli 1838 ms, 837 KiB y 1512 MiB.

PPTX editable

Desde v0.5.0 el PPTX se compone de cuadros de texto, formas e imágenes (véase Línea de comandos). Medido el 2026-10-19 a las 22:51, con una carga media de 1 minuto de 7,1, en tres rondas:

Presentacióngo-slidesmarp-clitamaño de go-slidestamaño de marp-climemoria de go-slidesmemoria de marp-cli
100 diapositivas348 ms7795 ms760 KiB7,2 MiB204 MiB1370 MiB
gaia, 20 diapositivas112 ms4608 ms893 KiB4,8 MiB
matemáticas y código, 20 diapositivas207 ms2780 ms842 KiB1,5 MiB

Para la presentación de 100 diapositivas, v0.4.0 tardaba 4,7 s y ocupaba 4,8 MiB y 540 MiB. El PPTX de marp-cli contiene imágenes. La mayor parte del tamaño de una presentación editable son las fuentes incrustadas.

Por qué es rápido

  • No hay que arrancar ningún navegador. marp-cli lanza Chrome en cada exportación a PDF, imagen o PPTX; go-slides renderiza con go-webengine dentro de su propio proceso.
  • Las diapositivas se renderizan en paralelo, cuatro a la vez por defecto, y cada imagen se escribe en cuanto le toca el turno: una presentación larga nunca se mantiene en memoria como imágenes.
  • Las fuentes se analizan una sola vez por proceso, no una vez por diapositiva.

Dónde no gana

  • Tamaño del PDF, en v0.3.0. Cada diapositiva era una imagen en el PDF: 10 MiB frente a 837 KiB en la presentación de 100 diapositivas. El PDF vectorial de arriba es más pequeño que el de marp-cli.
  • Tiempo de CPU en presentaciones grandes. Cuatro trabajadores gastan más CPU de lo que muestra el tiempo real: en v0.3.0, 3,2 s frente a los 2,7 s de marp-cli en el PDF de 100 diapositivas (0,9 s con el PDF vectorial).
  • La memoria de marp-cli es una cota superior: los procesos de Chrome comparten páginas que la suma cuenta en cada uno. Su mayor proceso individual ocupa entre 220 y 320 MiB.

El método, cada presentación y modo, y los comandos para reproducir las cifras están en BENCHMARKS.md.

Creada el por tannevaled

Modificada el por tannevaled