Take change Ia229460d0: it purports to improve the load time of VisualEditor, but it is hard to demonstrate this using vbench, because the overall impact of the patch on load time (~40ms) is less than the standard deviation that we typically observe.
Conclusion: instrumenting the very start and end of the entire VisualEditor initialization process does not give us the level of granularity that we need. We should emit events for the start and end of the different sub-processes that make up the editor initialization process, and make it possible to select which segment to profile with vbench.
Obvious candidates for "segmentation" are:
- Build linear model from DOM
- Setting up the toolbar (ve.init.mw.ViewPageTarget.setupToolbar).
- Sanity check
- Building the CE tree
- Building the DM tree