browser-perf
browser-perf copied to clipboard
Document more metrics
I'm seeing more metrics than documented at https://github.com/axemclion/browser-perf/wiki/Metrics. I'm guessing some of them are newer additions in timeline. It would be great to document more of them.
Here's an example output of my script that compares 2 versions of a page:
AnalyzeTask 7.276 7.947
AnalyzeTask_avg 0.01144025157 0.01028072445
AnalyzeTask_count 636 773
AnalyzeTask_max 0.049 0.056
CommitLoad 4.007 3.271
CommitLoad_avg 2.0035 1.6355
CommitLoad_max 3.91 3.174
CompositeLayers 2.615 3.676
CompositeLayers_avg 0.1136956522 0.114875
CompositeLayers_count 23 32
CompositeLayers_max 0.221 0.32
EvaluateScript 143.619 121.553
EvaluateScript_avg 28.7238 24.3106
EvaluateScript_max 79.913 69.156
EventDispatch 63.364 62.588
EventDispatch_avg 0.7634216867 0.857369863
EventDispatch_count 83 73
EventDispatch_max 59.494 60.078
FireAnimationFrame 0.424 0.315
FireAnimationFrame_avg 0.1413333333 0.105
FireAnimationFrame_max 0.251 0.171
FunctionCall 506.916 527.214
FunctionCall_avg 0.4791266541 0.4592456446
FunctionCall_count 1058 1148
FunctionCall_max 59.327 59.919
GPUTask 139.391 149.716
GPUTask_avg 0.3948753541 0.182136253
GPUTask_count 353 822
GPUTask_max 10.457 15.316
HitTest 0.286 0.457
HitTest_avg 0.04085714286 0.0457
HitTest_count 7 10
HitTest_max 0.085 0.101
Layout 50.849 44.482
Layout_avg 2.824944444 2.471222222
Layout_max 37.984 33.64
MajorGC 11.956 31.319
MajorGC_avg 2.989 2.237071429
MajorGC_count 4 14
MajorGC_max 7.743 20.833
MinorGC 8.524 13.223
MinorGC_avg 2.131 1.469222222
MinorGC_count 4 9
MinorGC_max 3.708 2.967
NodePerLayout_avg 100.6111111 87.83333333
Paint 5.243 5.792
PaintImage 0.377 0.472
PaintImage_avg 0.006180327869 0.0118
PaintImage_count 61 40
PaintImage_max 0.042 0.159
Paint_avg 0.3495333333 0.2632727273
Paint_count 15 22
Paint_max 1.622 0.983
PaintedArea_avg 1038624 1121241.818
PaintedArea_total 15579360 24667320
ParseAuthorStyleSheet 3.427 3.355
ParseAuthorStyleSheet_avg 0.428375 0.419375
ParseAuthorStyleSheet_max 0.867 0.902
ParseHTML 80.333 79.241
ParseHTML_avg 0.1587608696 0.1566027668
ParseHTML_max 63.228 63.848
RasterTask 389.835 488.388
RasterTask_avg 0.6129481132 0.6318085382
RasterTask_count 636 773
RasterTask_max 9.437 16.62
ScheduleStyleRecalculation 70 45
TimerFire 182.667 220.084
TimerFire_avg 5.074083333 2.418505495
TimerFire_count 36 91
TimerFire_max 45.958 43.714
TimerInstall 207 266
TimerRemove 165 204
UpdateCounters 1053 1153
UpdateLayer 8.146 9.712
UpdateLayerTree 1.812 2.354
UpdateLayerTree_avg 0.04646153846 0.04441509434
UpdateLayerTree_count 39 53
UpdateLayerTree_max 0.2 0.235
UpdateLayer_avg 0.509125 0.4222608696
UpdateLayer_count 16 23
UpdateLayer_max 2.074 1.207
UpdateLayoutTree 11.66 10.434
UpdateLayoutTree_avg 0.1619444444 0.222
UpdateLayoutTree_count 72 47
UpdateLayoutTree_max 4.848 4.57
connectEnd 1446989531957 1446989572366
connectStart 1446989531957 1446989572366
domComplete 1446989532235 1446989572625
domContentLoadedEventEnd 1446989532235 1446989572625
domContentLoadedEventStart 1446989532175 1446989572565
domInteractive 1446989532175 1446989572565
domLoading 1446989531990 1446989572403
domainLookupEnd 1446989531957 1446989572366
domainLookupStart 1446989531957 1446989572366
fetchStart 1446989531957 1446989572366
firstPaint 106.470108 99.68590736
initDomTreeTime 190 166
loadEventEnd 1446989532235 1446989572625
loadEventStart 1446989532235 1446989572625
loadTime 278 259
navigationStart 1446989531957 1446989572365
readyStart 0 1
requestStart 1446989531958 1446989572366
requestTime 27 33
responseEnd 1446989531985 1446989572399
responseStart 1446989531985 1446989572397
unloadEventEnd 1446989531986 1446989572399
unloadEventStart 1446989531986 1446989572399
Specifically, things that are missing:
AnalyzeTask_{avg | count | max}
CommitLoad_{avg | max}
GPUTask_{avg | count | max}
HitTest_{avg | count | max}
MajorGC_{avg | count | max}
MinorGC_{avg | count | max}
NodePerLayout_avg
PaintImage_{avg | count | max}
PaintedArea_{avg | total}
ParseAuthorStyleSheet_{avg | max}
RasterTask_{avg | count | max}
ScheduleStyleRecalculation
TimerInstall
TimerRemove
UpdateCounters
UpdateLayerTree_{avg | count | max}
UpdateLayer_{avg | count | max}
UpdateLayoutTree_{avg | count | max}
A lot of this stuff seems to be defined in http://opensource.apple.com/source/WebCore/WebCore-7537.70/inspector/InspectorTimelineAgent.cpp
I'll be adding things here little by little to help anyone looking for the same info:
HitTest
http://stackoverflow.com/questions/33174286/what-is-the-chrome-dev-tools-hit-test-timeline-entry https://www.chromium.org/developers/design-documents/compositor-hit-testing
PaintedArea
browser-perf-defined (?) metric of total painted area in sq pixels?
NodePerLayout_avg
browser-perf-defined metric of ...
ParseAuthorStylesheet
http://stackoverflow.com/questions/31963632/parse-author-style-sheet-in-timeline
UpdateLayer_*
http://stackoverflow.com/questions/25724126/chrome-devtools-timeline-update-layer-tree-event
I think this is a great idea. The explanation for each metric is in here - https://github.com/axemclion/browser-perf/tree/master/docs. While I try to keep them updated for each chrome version, new metrics keep popping up with new versions on Chrome :)
Would update these in the docs when I get time. Would also appreciate a PR if you can do it earlier than what I can manage.