Vai al contenuto

Prestazioni

Quanto velocemente go-slides compila una presentazione, con quanta memoria, misurato contro marp-cli sulla stessa macchina.

Le cifre PPTX qui sotto sono per la v0.5.0 e quelle del PDF vettoriale per la v0.4.0. La prima tabella è per la v0.3.0, la versione precedente, che rende le slide in modo concorrente e analizza i propri font una sola volta (go-slides/slides#11).

go-slides e marp-cli 4.5.1 sono stati eseguiti come sottoprocessi sulle stesse presentazioni, su un Apple M4 Max (16 CPU) con un carico medio a 1 minuto inferiore a 8, cinque round alternati dopo un riscaldamento. Il tempo è la mediana del tempo reale; la memoria è il picco dell’intero albero di processi (marp-cli pilota un Chrome, i cui processi vengono contati).

PresentazioneOutputgo-slidesmarp-climemoria go-slidesmemoria marp-cli
100 slideHTML36 ms315 ms47 MiB140 MiB
100 slidePDF1,14 s1,88 s242 MiB1.509 MiB
100 slidePNG, ogni slide0,97 s5,44 s225 MiB1.354 MiB
100 slidePPTX3,39 s8,03 s530 MiB1.373 MiB
gaia, 20 slidePDF283 ms1,57 s154 MiB1.315 MiB
matematica e codice, 20 slidePNG, ogni slide250 ms2,32 s168 MiB1.286 MiB

PDF vettoriale

Nella v0.4.0 il PDF è disegnato in vettoriale (vedi Riga di comando). Stessa macchina e stesso metodo, 19-10-2026:

Presentazionego-slidesmarp-cliv0.3.0dimensione go-slidesdimensione marp-clidimensione v0.3.0
100 slide306 ms1.763 ms1.147 ms758 KiB837 KiB10,0 MiB
gaia, 20 slide93 ms1.546 ms285 ms32 KiB66 KiB582 KiB
matematica e codice, 20 slide140 ms1.643 ms294 ms124 KiB335 KiB638 KiB

Memoria per il PDF da 100 slide: 158 MiB, contro 1.512 MiB di marp-cli; tempo CPU 0,9 s contro 2,7 s.

Le cifre della v0.4.0 per il PDF da 100 slide sono state misurate il 19-10-2026 alle 21:29, con un carico medio a 1 minuto di 7,7, su tre round: go-slides 306 ms, 758 KiB e 158 MiB; marp-cli 1.838 ms, 837 KiB e 1.512 MiB.

PPTX modificabile

Dalla v0.5.0 il PPTX è fatto di caselle di testo, forme e immagini (vedi Riga di comando). Misurato il 19-10-2026 alle 22:51, con un carico medio a 1 minuto di 7,1, su tre round:

Presentazionego-slidesmarp-clidimensione go-slidesdimensione marp-climemoria go-slidesmemoria marp-cli
100 slide348 ms7.795 ms760 KiB7,2 MiB204 MiB1.370 MiB
gaia, 20 slide112 ms4.608 ms893 KiB4,8 MiB
matematica e codice, 20 slide207 ms2.780 ms842 KiB1,5 MiB

Per la presentazione da 100 slide, la v0.4.0 impiegava 4,7 s, 4,8 MiB e 540 MiB. Il PPTX di marp-cli contiene immagini. Gran parte della dimensione di una presentazione modificabile sono i font incorporati.

Perché è veloce

  • Nessun browser da avviare. marp-cli lancia Chrome per ogni esportazione in PDF, immagini e PPTX; go-slides esegue il rendering con go-webengine all’interno del proprio processo.
  • Le slide vengono rese in parallelo, quattro alla volta per impostazione predefinita, e ogni immagine viene scritta non appena è il suo turno: una presentazione lunga non è mai tenuta in memoria come immagini.
  • I font vengono analizzati una sola volta per processo, non una volta per slide.

Dove non vince

  • Dimensione del PDF, nella v0.3.0. Ogni slide era un’immagine nel PDF: 10 MiB contro 837 KiB per la presentazione da 100 slide. Il PDF vettoriale qui sopra è più piccolo di quello di marp-cli.
  • Tempo CPU sulle presentazioni grandi. Quattro worker spendono più CPU di quanto il tempo reale mostri: nella v0.3.0, 3,2 s contro i 2,7 s di marp-cli per il PDF da 100 slide (0,9 s per il PDF vettoriale).
  • La memoria è un limite superiore per marp-cli: i processi di Chrome condividono pagine che la somma conta in ciascuno. Il suo singolo processo più grande è di 220–320 MiB.

Il metodo, ogni presentazione e modalità, e i comandi per riprodurre le cifre sono in BENCHMARKS.md.

Created on by tannevaled

Modified on by tannevaled