1*c8dee2aaSAndroid Build Coastguard Worker 2*c8dee2aaSAndroid Build Coastguard Worker--- 3*c8dee2aaSAndroid Build Coastguard Workertitle: "Skia Perf" 4*c8dee2aaSAndroid Build Coastguard WorkerlinkTitle: "Skia Perf" 5*c8dee2aaSAndroid Build Coastguard Worker 6*c8dee2aaSAndroid Build Coastguard Worker--- 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Worker[Skia Perf](https://perf.skia.org) is a web application for analyzing and 10*c8dee2aaSAndroid Build Coastguard Workerviewing performance metrics produced by Skia's testing infrastructure. 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Worker<img src=../Perf.png style="margin-left:30px" align="left" width="800"/> <br clear="left"> 13*c8dee2aaSAndroid Build Coastguard Worker 14*c8dee2aaSAndroid Build Coastguard WorkerSkia tests across a large number of platforms and configurations, and each 15*c8dee2aaSAndroid Build Coastguard Workercommit to Skia generates more than 400,000 individual values that are sent to 16*c8dee2aaSAndroid Build Coastguard WorkerPerf, consisting mostly of performance benchmark results, but also including 17*c8dee2aaSAndroid Build Coastguard Workermemory and coverage data. 18*c8dee2aaSAndroid Build Coastguard Worker 19*c8dee2aaSAndroid Build Coastguard WorkerPerf offers clustering, which is a tool to pick out trends and patterns in large sets of traces. 20*c8dee2aaSAndroid Build Coastguard Worker 21*c8dee2aaSAndroid Build Coastguard Worker<img src=../Cluster.png style="margin-left:30px" align="left" width="400"/> <br clear="left"> 22*c8dee2aaSAndroid Build Coastguard Worker 23*c8dee2aaSAndroid Build Coastguard WorkerAnd can generate alerts when those trends spot a regression: 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Worker<img src=../Regression.png style="margin-left:30px" align="left" width="800"/> <br clear="left"> 26*c8dee2aaSAndroid Build Coastguard Worker 27*c8dee2aaSAndroid Build Coastguard Worker 28*c8dee2aaSAndroid Build Coastguard Worker## Calculations 29*c8dee2aaSAndroid Build Coastguard Worker 30*c8dee2aaSAndroid Build Coastguard WorkerSkia Perf has the ability to perform calculations over the test data 31*c8dee2aaSAndroid Build Coastguard Workerallowing you to build up interesting queries. 32*c8dee2aaSAndroid Build Coastguard Worker 33*c8dee2aaSAndroid Build Coastguard WorkerThis query displays the ratio of playback time in ms to the number of ops for desk\_wowwiki.skp: 34*c8dee2aaSAndroid Build Coastguard Worker 35*c8dee2aaSAndroid Build Coastguard Worker ratio( 36*c8dee2aaSAndroid Build Coastguard Worker ave(fill(filter("name=desk_wowwiki.skp&sub_result=min_ms"))), 37*c8dee2aaSAndroid Build Coastguard Worker ave(fill(filter("name=desk_wowwiki.skp&sub_result=ops"))) 38*c8dee2aaSAndroid Build Coastguard Worker ) 39*c8dee2aaSAndroid Build Coastguard Worker 40*c8dee2aaSAndroid Build Coastguard WorkerYou can also use the data to answer questions like how many tests were run per commit. 41*c8dee2aaSAndroid Build Coastguard Worker 42*c8dee2aaSAndroid Build Coastguard Worker count(filter("")) 43*c8dee2aaSAndroid Build Coastguard Worker 44*c8dee2aaSAndroid Build Coastguard WorkerSee Skia Perf for the [full list of functions available](https://perf.skia.org/help/). 45*c8dee2aaSAndroid Build Coastguard Worker 46