Page MenuHomePhabricator

Instrument (i.e., track) additional progress markers for VE load
Closed, ResolvedPublic1 Estimated Story Points

Description

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

Event Timeline

ori assigned this task to Catrope.
ori raised the priority of this task from to Medium.
ori updated the task description. (Show Details)
ori added a project: VisualEditor-Performance.
ori subscribed.
Restricted Application added a subscriber: Aklapper. · View Herald Transcript
ori raised the priority of this task from Medium to High.Feb 14 2015, 2:46 AM
ori set Security to None.

Suppose we call these "stages". For each phase, I need an "entry" event and an "exit" event. For example:

ve.track( 'trace.setupToolbar.enter' );
// (toolbar gets set up).
ve.track( 'trace.setupToolbar.exit' );

In addition to the stages mentioned above, please also emit entry and exit events for VisualEditor initialization as a whole. That way vbench can have a single, generic means of specifying which unit of work it wants to measure.

gerritbot subscribed.

Change 191234 had a related patch set uploaded (by Ori.livneh):
vbench: Allow 'stage' to be specified from the command line

https://gerrit.wikimedia.org/r/191234

Patch-For-Review

Change 191234 merged by Ori.livneh:
vbench: Allow 'stage' to be specified from the command line

https://gerrit.wikimedia.org/r/191234

Change 191389 had a related patch set uploaded (by Catrope):
Add a bunch of trace.foo.{enter|exit} events logged through ve.track()

https://gerrit.wikimedia.org/r/191389

Patch-For-Review

Change 191389 merged by jenkins-bot:
Add a bunch of trace.foo.{enter|exit} events logged through ve.track()

https://gerrit.wikimedia.org/r/191389