Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update benchmarks to be more realistic polymorphically (#7255)
Previously, the extract-components script would create the same number of layers of composites as the page it captures, but it would output a new class for each time any composite is used (since we don't want to replicate all the component logic). I changed the script to output a single type for each type in the input -- and each generated component takes an index for which output it should return. This should be closer to how the original code behaves, especially with respect to VM function call lookups where the amount of polymorphism makes a difference. I re-recorded the benchmarks with the new scripts. They run significantly faster: ``` Comparing old.txt (control) vs new.txt (test) Significant differences marked by *** % change from control to test, with 99% CIs: * ssr_pe_cold_ms_jsc_jit % change: -41.73% [-43.37%, -40.09%] *** means: 39.3191 (control), 22.9127 (test) * ssr_pe_cold_ms_jsc_nojit % change: -44.24% [-46.69%, -41.80%] *** means: 45.8646 (control), 25.5764 (test) * ssr_pe_cold_ms_node % change: -45.61% [-47.38%, -43.85%] *** means: 90.1118 (control), 49.0116 (test) ``` This is probably in part due to the changes here, but also the page I captured has changed somewhat in the meantime and there seem to be slightly fewer components in the hierarchy, so they're not really comparable. But going forward we can use this benchmark which should be more accurate. I also included an identical copy that uses stateless functional components so we can test optimizations to those later.
- Loading branch information