Issue metadata
Sign in to add a comment
|
5.4% regression in rasterize_and_record_micro.top_25 at 504260:504319 |
||||||||||||||||||||
Issue descriptionSee the link to graphs below.
,
Sep 27 2017
Started bisect job https://chromeperf.appspot.com/buildbucket_job_status/8967254596743270896
,
Sep 28 2017
=== Auto-CCing suspected CL author agrieve@chromium.org === Hi agrieve@chromium.org, the bisect results pointed to your CL, please take a look at the results. === BISECT JOB RESULTS === Perf regression found with culprit Suspected Commit Author : Andrew Grieve Commit : 8a218af5c68598645675d76980984777c8429bb3 Date : Tue Sep 26 04:31:21 2017 Subject: Android: Roll ndk to add CHROMIUM_CXX_TWEAK_INLINES Bisect Details Configuration: android_nexus5X_perf_bisect Benchmark : rasterize_and_record_micro.top_25 Metric : record_time/file___static_top_25_amazon.html Change : 4.94% | 0.111333333333 -> 0.116833333333 Revision Result N chromium@504259 0.111333 +- 0.0011547 6 good chromium@504274 0.111667 +- 0.0011547 6 good chromium@504282 0.111833 +- 0.000912871 6 good chromium@504283 0.115833 +- 0.000912871 6 bad <-- chromium@504284 0.116167 +- 0.000912871 6 bad chromium@504286 0.116333 +- 0.00182574 6 bad chromium@504289 0.117 +- 0.00282843 6 bad chromium@504319 0.116833 +- 0.00168325 6 bad To Run This Test src/tools/perf/run_benchmark -v --browser=android-chromium --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=file...static.top.25.amazon.html rasterize_and_record_micro.top_25 More information on addressing performance regressions: http://g.co/ChromePerformanceRegressions Debug information about this bisect: https://chromeperf.appspot.com/buildbucket_job_status/8967254596743270896 For feedback, file a bug with component Speed>Bisection
,
Oct 3 2017
,
Oct 18 2017
Issue 771253 has been merged into this issue.
,
Jan 8 2018
Andrew: Is there anything that can be done about the regressions caused by the NDK roll?
,
Jan 10 2018
This was caused not by a an NDK roll, but by adding some __noinline__ annotations to std::string and std::vector. The patch saved almost 1MB of native code size, so overall I think there's a very strong argument to say that it's worth a few small regressions. It's certainly possible that these microbenchmarks could be improved by looking at their use of vector and string, but I don't think the optimizations would be different from what you'd find from profiling anyways. Do you know who the owners for these benchmarks are? I have no idea if this amount of slowdown merits a deep-dive into them.
,
Jan 15 2018
Since Blink doesn't use std::vector/string much, I'd guess these uses are within skia or cc. +fmalita who knows the Skia side better.
,
Jan 17 2018
Historically, Skia has steered clear of std::{vector,string} also. New code (last year or so?) has started using them though.
From a quick grep, the most significant user is the SKSL compiler - but that wouldn't explain a *record time* regression. I suspect this is unrelated to Skia.
,
Jan 17 2018
Agreed it's unlikely to be Skia. We don't use std::vector much, and not in any performance critical place I can see but sksl. I'm also agreed on the sentiment in Comment 7... 1MB of code on mobile is a big deal. In fact, the only reason we're kind of considering ramping up our use of std::vector in Skia might be so that the linker can dedup our std::vector instances with everyone else's, rather than bloating code size with workalike SkT[D]Arrays and such.
,
Jan 26 2018
Thanks for the analysis! vmpstr, assigning to you as owner of rasterize_and_record: are you okay with accepting this regression since we save 1MB of native code size?
,
Jan 26 2018
Please WontFix this bug if you think this is an acceptable tradeoff.
,
Jan 26 2018
I think the tradeoff is absolutely worth it. It's really nice savings on the code size and a fairly small time regression. |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by 42576172...@developer.gserviceaccount.com
, Sep 27 2017