DescriptionAdding instrumentation to locate the source of jankiness.
Prior instrumentations showed that most of the jank for this bug comes from these lines in AboutSigninInternals::NotifyObservers
scoped_ptr<base::DictionaryValue> signin_status_value =
signin_status_.ToValue(client_->GetProductVersion());
Note that at least in Windows Canary, there are always 0 observers, and the value that we are calculating using a janky call is not used.
I'm almost certain that the cause of jank is in VersionInfo::GetVersionStringModifier, but I'm adding this last instrumentation to be 100% sure.
Reviewers, please feel free to stop me and start fixing the jank if you already know what's happening.
This is a mechanical change that adds instrumentation required to locate the
source of jankiness (i.e. a long-running fragment of code executed as a part of
the task that causes jank) in the code. See the bug for details on what kind of
jank we are after.
A number of similar CLs were landed, and none of them caused issues. They've
helped to find and fix janky code. The code of the instrumentation is highly
optimized and is not expected to affect performance. The code simply creates a
diagnostic task which is identical to ones created by PostTask or IPC message
handlers. The task gets created only in developer build and in Canary channel.
BUG=422460
Committed: https://crrev.com/ff67509f135221d6caf3ce32cc0fc1e79d1ef721
Cr-Commit-Position: refs/heads/master@{#305049}
Patch Set 1 #
Messages
Total messages: 8 (2 generated)
|