@@ -462,37 +462,56 @@ <h3>Cold Build Times (No Cache)</h3>
462462 < tr >
463463 < td > < strong > Rendertest</ strong > </ td >
464464 < td > 98</ td >
465- < td > 11.24s </ td >
466- < td > 5.6s </ td >
467- < td class ="improvement "> -50 .2% (5 .6s faster)</ td >
465+ < td > 8.16s </ td >
466+ < td > 5.53s </ td >
467+ < td class ="improvement "> -32 .2% (2 .6s faster)</ td >
468468 </ tr >
469469 </ tbody >
470470 </ table >
471471
472- < h3 style ="margin-top: 2rem; "> Resource Usage (Feature Branch) </ h3 >
472+ < h3 style ="margin-top: 2rem; "> Resource Usage Comparison </ h3 >
473473 < table class ="comparison-table ">
474474 < thead >
475475 < tr >
476476 < th > Documentation</ th >
477+ < th > Branch</ th >
477478 < th > CPU Usage</ th >
478479 < th > Peak Memory</ th >
479480 </ tr >
480481 </ thead >
481482 < tbody >
482483 < tr >
483- < td > < strong > TYPO3 Core Changelog</ strong > (3666 files)</ td >
484+ < td rowspan ="2 "> < strong > TYPO3 Core Changelog</ strong > (3666 files)</ td >
485+ < td > main</ td >
486+ < td > ~100% (single-threaded)</ td >
487+ < td > N/A</ td >
488+ </ tr >
489+ < tr >
490+ < td style ="color: var(--primary); font-weight: 600; "> feature</ td >
484491 < td > 437%</ td >
485492 < td > 942 MB</ td >
486493 </ tr >
487494 < tr >
488- < td > < strong > TYPO3 Core API</ strong > (957 files)</ td >
495+ < td rowspan ="2 "> < strong > TYPO3 Core API</ strong > (957 files)</ td >
496+ < td > main</ td >
497+ < td > ~100% (single-threaded)</ td >
498+ < td > N/A</ td >
499+ </ tr >
500+ < tr >
501+ < td style ="color: var(--primary); font-weight: 600; "> feature</ td >
489502 < td > 387%</ td >
490503 < td > 567 MB</ td >
491504 </ tr >
492505 < tr >
493- < td > < strong > Rendertest</ strong > (98 files)</ td >
494- < td > 188%</ td >
495- < td > 120 MB</ td >
506+ < td rowspan ="2 "> < strong > Rendertest</ strong > (98 files)</ td >
507+ < td > main</ td >
508+ < td > ~59%</ td >
509+ < td > 97 MB</ td >
510+ </ tr >
511+ < tr >
512+ < td style ="color: var(--primary); font-weight: 600; "> feature</ td >
513+ < td > 200%</ td >
514+ < td > 33 MB</ td >
496515 </ tr >
497516 </ tbody >
498517 </ table >
@@ -501,9 +520,8 @@ <h3 style="margin-top: 2rem;">Resource Usage (Feature Branch)</h3>
501520 437% CPU = ~4.4 cores utilized on average.
502521 </ p >
503522 < p style ="color: var(--text-muted); margin-top: 0.5rem; font-size: 0.9rem; ">
504- < strong > Note:</ strong > Main branch resource metrics not shown — the benchmark measurements for main were unreliable
505- (identical values across runs, suggesting container limits rather than actual usage).
506- Main branch is single-threaded, so CPU usage is ~100%.
523+ < strong > Memory Efficiency:</ strong > Feature branch uses < strong > 3x less memory</ strong > for small docs (33 MB vs 97 MB)
524+ despite parallel processing. PHP profiling via < code > memory_get_peak_usage(true)</ code > .
507525 </ p >
508526
509527 < div class ="chart-container ">
@@ -533,11 +551,11 @@ <h4 style="margin-bottom: 1rem; text-align: center;">Build Time Comparison (seco
533551 </ div >
534552 < div class ="bar-group ">
535553 < div style ="display: flex; gap: 0.5rem; align-items: flex-end; ">
536- < div class ="bar main " style ="height: 3px ; ">
537- < span class ="bar-value "> 11.2s </ span >
554+ < div class ="bar main " style ="height: 2px ; ">
555+ < span class ="bar-value "> 8.16s </ span >
538556 </ div >
539557 < div class ="bar " style ="height: 1px; ">
540- < span class ="bar-value "> 5.6s </ span >
558+ < span class ="bar-value "> 5.53s </ span >
541559 </ div >
542560 </ div >
543561 < div class ="bar-label "> Rendertest< br > (98 files)</ div >
@@ -593,17 +611,80 @@ <h2>Cold vs Warm Build Performance (Feature Branch)</h2>
593611 </ tr >
594612 < tr >
595613 < td > < strong > Rendertest</ strong > (98 files)</ td >
596- < td > 5.6s </ td >
597- < td > 4.0s </ td >
598- < td > 188 %</ td >
599- < td > 120 MB</ td >
600- < td > < span style ="color: var(--success); font-weight: bold; "> -29 %</ span > </ td >
614+ < td > 5.53s </ td >
615+ < td > 4.27s </ td >
616+ < td > 200 %</ td >
617+ < td > 33 MB</ td >
618+ < td > < span style ="color: var(--success); font-weight: bold; "> -23 %</ span > </ td >
601619 </ tr >
602620 </ tbody >
603621 </ table >
604622 < p style ="color: var(--text-muted); margin-top: 1rem; font-size: 0.9rem; ">
605623 < strong > Note:</ strong > Warm builds benefit from Twig template caching persisted between runs.
606- The 20-29% improvement comes primarily from avoiding Twig template recompilation.
624+ The 20-23% improvement comes primarily from avoiding Twig template recompilation.
625+ </ p >
626+ </ div >
627+
628+ <!-- Parallel Processing Comparison -->
629+ < div class ="card ">
630+ < h2 > Parallel Processing Comparison (Rendertest - 98 files)</ h2 >
631+ < p style ="color: var(--text-muted); margin-bottom: 1rem; ">
632+ Comparison of different parallelism configurations on the small documentation set.
633+ </ p >
634+
635+ < table class ="comparison-table ">
636+ < thead >
637+ < tr >
638+ < th > Configuration</ th >
639+ < th > Cold Build</ th >
640+ < th > Warm Build</ th >
641+ < th > Memory</ th >
642+ < th > CPU Usage</ th >
643+ </ tr >
644+ </ thead >
645+ < tbody >
646+ < tr style ="background: #f8f9fa; ">
647+ < td > < strong > main branch</ strong > (official container)</ td >
648+ < td > 8.16s</ td >
649+ < td > 8.98s</ td >
650+ < td > 97 MB</ td >
651+ < td > ~59%</ td >
652+ </ tr >
653+ < tr >
654+ < td > < strong > feature</ strong > (sequential, --parallel-workers=-1)</ td >
655+ < td > 5.53s < span style ="color: var(--success); "> (-32%)</ span > </ td >
656+ < td > 4.27s < span style ="color: var(--success); "> (-52%)</ span > </ td >
657+ < td > 33 MB < span style ="color: var(--success); "> (-66%)</ span > </ td >
658+ < td > 200%</ td >
659+ </ tr >
660+ < tr >
661+ < td > < strong > feature</ strong > (auto, --parallel-workers=0)</ td >
662+ < td > 5.53s < span style ="color: var(--success); "> (-32%)</ span > </ td >
663+ < td > 4.25s < span style ="color: var(--success); "> (-53%)</ span > </ td >
664+ < td > 33 MB < span style ="color: var(--success); "> (-66%)</ span > </ td >
665+ < td > 195%</ td >
666+ </ tr >
667+ < tr >
668+ < td > < strong > feature</ strong > (16 workers, --parallel-workers=16)</ td >
669+ < td > 5.94s < span style ="color: var(--success); "> (-27%)</ span > </ td >
670+ < td > 4.43s < span style ="color: var(--success); "> (-51%)</ span > </ td >
671+ < td > 33 MB < span style ="color: var(--success); "> (-66%)</ span > </ td >
672+ < td > 196%</ td >
673+ </ tr >
674+ </ tbody >
675+ </ table >
676+
677+ < h3 style ="margin-top: 1.5rem; "> Key Observations</ h3 >
678+ < ul style ="margin: 1rem 0; padding-left: 1.5rem; ">
679+ < li > < strong > 32% faster even without parallelism:</ strong > The feature branch's optimizations (caching patches, PHP 8.5 improvements) provide significant speedup independent of parallel processing.</ li >
680+ < li > < strong > 66% less memory:</ strong > Feature branch uses only 33 MB vs main's 97 MB — more efficient memory management.</ li >
681+ < li > < strong > Warm caching works:</ strong > Feature branch warm builds are 23% faster than cold; main branch shows no warm cache benefit (8.98s warm vs 8.16s cold).</ li >
682+ < li > < strong > Parallelism overhead on small docs:</ strong > For small documentation sets, forcing 16 workers adds slight overhead. Auto-detection or sequential mode perform similarly.</ li >
683+ </ ul >
684+
685+ < p style ="color: var(--text-muted); margin-top: 1rem; font-size: 0.9rem; ">
686+ < strong > Parallelism shines on large docs:</ strong > The parallel processing benefits are most visible on larger documentation sets
687+ (Core API: 74% faster, Core Changelog: 96% faster) where the fork overhead is amortized across many files.
607688 </ p >
608689 </ div >
609690
@@ -980,9 +1061,9 @@ <h2>Incremental Build Performance (Feature Branch)</h2>
9801061 </ tr >
9811062 < tr >
9821063 < td > < strong > Rendertest</ strong > (98 files)</ td >
983- < td > 5.6s </ td >
984- < td > 4.0s < span style ="color: var(--success); "> (-29 %)</ span > </ td >
985- < td > 4.1s < span style ="color: var(--success); "> (-27 %)</ span > </ td >
1064+ < td > 5.53s </ td >
1065+ < td > 4.27s < span style ="color: var(--success); "> (-23 %)</ span > </ td >
1066+ < td > 4.25s < span style ="color: var(--success); "> (-23 %)</ span > </ td >
9861067 </ tr >
9871068 </ tbody >
9881069 </ table >
0 commit comments