8c1a4f80d9
Here's a demo. The new code is still looking 2-3x faster. ~/skia (bench) $ r nanobench --match nytimes --config nonrendering --ms 2000 curr/maxrss loops min median mean max stddev samples config bench 19/26 MB 2 146µs 147µs 151µs 422µs 9% 6615 nonrendering desk_nytimes.skp 20/26 MB 4 46.6µs 46.9µs 48.2µs 204µs 10% 10370 nonrendering keymobi_nytimes_com_.skp ~/skia (bench) $ r nanobench --match nytimes --config nonrendering --ms 2000 --lite curr/maxrss loops min median mean max stddev samples config bench 19/26 MB 2 73.8µs 76.9µs 78.7µs 417µs 14% 12702 nonrendering desk_nytimes.skp 20/26 MB 5 18.5µs 18.7µs 19.3µs 137µs 12% 20713 nonrendering keymobi_nytimes_com_.skp Here's a quick performance diff, where <1x means --lite is faster: top25desk_wikipedia__1_tab_.skp 285us -> 364us 1.27x top25desk_games_yahoo_com.skp 302us -> 329us 1.09x tabl_mozilla.skp 241us -> 260us 1.08x desk_chalkboard.skp 321us -> 313us 0.98x tabl_gamedeksiam.skp 383us -> 367us 0.96x top25desk_pinterest.skp 375us -> 281us 0.75x keymobi_reddit_com_r_programmin.skp 258us -> 142us 0.55x desk_nytimes.skp 149us -> 77.9us 0.52x keymobi_worldjournal_com_.skp 201us -> 104us 0.52x top25desk_blogger.skp 112us -> 55us 0.49x top25desk_sports_yahoo_com_.skp 186us -> 89.6us 0.48x desk_googlespreadsheet.skp 206us -> 97.5us 0.47x top25desk_google_com_search_q_c.skp 192us -> 89.8us 0.47x keymobi_wikipedia__1_tab_.skp 170us -> 79.3us 0.47x keymobi_wikipedia__1_tab____del.skp 170us -> 78.2us 0.46x desk_unicodetable.skp 6.25ms -> 2.87ms 0.46x desk_carsvg.skp 138us -> 63.3us 0.46x top25desk_answers_yahoo_com.skp 133us -> 60.7us 0.46x top25desk_espn.skp 108us -> 49.2us 0.45x top25desk_plus_google_com_11003.skp 361us -> 162us 0.45x desk_espn.skp 99.4us -> 44.5us 0.45x tabl_worldjournal.skp 103us -> 45.6us 0.44x desk_ugamsolutions.skp 56.2us -> 24.8us 0.44x top25desk_facebook.skp 82.7us -> 35.7us 0.43x keymobi_cuteoverload_com.skp 213us -> 91.9us 0.43x top25desk_linkedin.skp 61.3us -> 26.3us 0.43x top25desk_news_yahoo_com.skp 153us -> 65.6us 0.43x desk_gmailthread.skp 64.9us -> 27.8us 0.43x keymobi_androidpolice_com_2012_.skp 167us -> 71.3us 0.43x top25desk_amazon_com.skp 77.5us -> 33.1us 0.43x desk_wowwiki.skp 129us -> 54.1us 0.42x top25desk_weather_com.skp 113us -> 47.1us 0.42x keymobi_facebook_com_barackobam.skp 95.2us -> 39.6us 0.42x keymobi_shop_mobileweb_ebay_com.skp 31.5us -> 13.1us 0.42x keymobi_amazon_com_gp_aw_s_ref_.skp 46.1us -> 18.9us 0.41x keymobi_mobile_news_sandbox_goo.skp 90.7us -> 37us 0.41x top25desk_google_com__hl_en_q_b.skp 52.4us -> 21.4us 0.41x keymobi_answers_yahoo_com_quest.skp 96.5us -> 39.3us 0.41x tabl_pravda.skp 126us -> 51.2us 0.41x keymobi_nytimes_com_.skp 46.9us -> 19us 0.4x keymobi_ftw_usatoday_com_2014_0.skp 119us -> 48.2us 0.4x top25desk_youtube_com.skp 162us -> 65.3us 0.4x keymobi_news_yahoo_com.skp 58.1us -> 23.2us 0.4x keymobi_boingboing_net.skp 58.8us -> 23.4us 0.4x keymobi_techcrunch_com.skp 26.3us -> 10.4us 0.39x keymobi_plus_google_com_app_bas.skp 26.9us -> 10.4us 0.38x keymobi_google_co_uk_search_hl_.skp 35.1us -> 13.4us 0.38x keymobi_pinterest.skp 26.2us -> 10us 0.38x keymobi_deviantart_com_.skp 67.1us -> 25.4us 0.38x tabl_gmail.skp 10.3us -> 3.86us 0.38x top25desk_ebay_com.skp 65.6us -> 24.5us 0.37x keymobi_m_youtube_com_watch_v_9.skp 57.9us -> 21.6us 0.37x top25desk_wordpress.skp 138us -> 51.3us 0.37x keymobi_gsp_ro.skp 17us -> 6.34us 0.37x top25desk_techcrunch_com.skp 93.6us -> 34.7us 0.37x keymobi_cnn_com_2012_10_03_poli.skp 232us -> 85.5us 0.37x keymobi_cnn_com.skp 30.5us -> 11.1us 0.37x keymobi_baidu_com_s_wd_barack_o.skp 39.3us -> 14.3us 0.36x keymobi_online_wsj_com_home_pag.skp 50.3us -> 18.3us 0.36x keymobi_digg_com.skp 54.8us -> 19.5us 0.36x keymobi_wowwiki_com_world_of_wa.skp 39.4us -> 14us 0.36x keymobi_theverge_com_2012_10_28.skp 102us -> 36.4us 0.36x tabl_digg.skp 105us -> 37.4us 0.36x top25desk_google_com_calendar_.skp 67.2us -> 23.7us 0.35x keymobi_wordpress.skp 65.3us -> 23us 0.35x desk_css3gradients.skp 56.4us -> 19.8us 0.35x top25desk_mail_google_com_mail_.skp 119us -> 41.6us 0.35x desk_googlehome.skp 8.2us -> 2.85us 0.35x top25desk_docs___1_open_documen.skp 23.8us -> 8.22us 0.35x keymobi_mlb_com_.skp 18.6us -> 6.3us 0.34x keymobi_slashdot_org_.skp 33us -> 11us 0.33x desk_tiger8svg.skp 96.2us -> 32us 0.33x top25desk_twitter.skp 124us -> 40.7us 0.33x keymobi_bing_com_search_q_sloth.skp 17.3us -> 5.55us 0.32x keymobi_linkedin.skp 6.78us -> 1.99us 0.29x top25desk_booking_com.skp 291us -> 83.2us 0.29x keymobi_blogger.skp 19.3us -> 5.47us 0.28x keymobi_sfgate_com_.skp 83.3us -> 23us 0.28x desk_jsfiddlebigcar.skp 10.8us -> 2.95us 0.27x keymobi_theverge_com.skp 22us -> 5.27us 0.24x desk_mapsvg.skp 1.15us -> 216ns 0.19x keymobi_iphone_capitolvolkswage.skp 121us -> 22.3us 0.18x desk_wikipedia.skp 1.36us -> 244ns 0.18x desk_pokemonwiki.skp 1.35us -> 243ns 0.18x desk_samoasvg.skp 1.39us -> 241ns 0.17x desk_tigersvg.skp 1.41us -> 241ns 0.17x keymobi_booking_com_searchresul.skp 129us -> 19.7us 0.15x Some spot testing makes it look like everything that's not a giant speedup can be made so by tweaking my (arbitrarily set) maximum size for the free list. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2220273002 Review-Url: https://codereview.chromium.org/2220273002 |
||
---|---|---|
.. | ||
AAClipBench.cpp | ||
AlternatingColorPatternBench.cpp | ||
AndroidCodecBench.cpp | ||
AndroidCodecBench.h | ||
BenchLogger.cpp | ||
BenchLogger.h | ||
Benchmark.cpp | ||
Benchmark.h | ||
BezierBench.cpp | ||
BigPathBench.cpp | ||
BitmapBench.cpp | ||
BitmapRectBench.cpp | ||
BitmapRegionDecoderBench.cpp | ||
BitmapRegionDecoderBench.h | ||
BitmapScaleBench.cpp | ||
BlurBench.cpp | ||
BlurImageFilterBench.cpp | ||
BlurOccludedRRectBench.cpp | ||
BlurRectBench.cpp | ||
BlurRectsBench.cpp | ||
BlurRoundRectBench.cpp | ||
ChartBench.cpp | ||
check_bench_regressions.py | ||
ChecksumBench.cpp | ||
ChromeBench.cpp | ||
CmapBench.cpp | ||
CodecBench.cpp | ||
CodecBench.h | ||
CodecBenchPriv.h | ||
ColorCodecBench.cpp | ||
ColorCodecBench.h | ||
ColorCubeBench.cpp | ||
ColorFilterBench.cpp | ||
ColorPrivBench.cpp | ||
ControlBench.cpp | ||
CoverageBench.cpp | ||
DashBench.cpp | ||
DisplacementBench.cpp | ||
DrawBitmapAABench.cpp | ||
DrawLatticeBench.cpp | ||
EncoderBench.cpp | ||
FontCacheBench.cpp | ||
FontScalerBench.cpp | ||
FSRectBench.cpp | ||
GameBench.cpp | ||
GeometryBench.cpp | ||
GLBench.cpp | ||
GLBench.h | ||
GLInstancedArraysBench.cpp | ||
GLVec4ScalarBench.cpp | ||
GLVertexAttributesBench.cpp | ||
GMBench.cpp | ||
GMBench.h | ||
GradientBench.cpp | ||
GrMemoryPoolBench.cpp | ||
GrMipMapBench.cpp | ||
GrResourceCacheBench.cpp | ||
gUniqueGlyphIDs.h | ||
HairlinePathBench.cpp | ||
HardStopGradientBench_ScaleNumColors.cpp | ||
HardStopGradientBench_ScaleNumHardStops.cpp | ||
HardStopGradientBench_SpecialHardStops.cpp | ||
ImageBench.cpp | ||
ImageCacheBench.cpp | ||
ImageFilterCollapse.cpp | ||
ImageFilterDAGBench.cpp | ||
InterpBench.cpp | ||
LightingBench.cpp | ||
LineBench.cpp | ||
MagnifierBench.cpp | ||
MathBench.cpp | ||
Matrix44Bench.cpp | ||
MatrixBench.cpp | ||
MatrixConvolutionBench.cpp | ||
MemoryBench.cpp | ||
MemsetBench.cpp | ||
MergeBench.cpp | ||
microbench.json | ||
MipMapBench.cpp | ||
MorphologyBench.cpp | ||
MutexBench.cpp | ||
nanobench.cpp | ||
nanobench.h | ||
nanobenchAndroid.cpp | ||
nanobenchAndroid.h | ||
pack_int_uint16_t_Bench.cpp | ||
PatchBench.cpp | ||
PatchGridBench.cpp | ||
PathBench.cpp | ||
PathIterBench.cpp | ||
PDFBench.cpp | ||
PerlinNoiseBench.cpp | ||
PictureNestingBench.cpp | ||
PictureOverheadBench.cpp | ||
PicturePlaybackBench.cpp | ||
PremulAndUnpremulAlphaOpsBench.cpp | ||
ReadPixBench.cpp | ||
RecordingBench.cpp | ||
RecordingBench.h | ||
RectanizerBench.cpp | ||
RectBench.cpp | ||
RectoriBench.cpp | ||
RefCntBench.cpp | ||
RegionBench.cpp | ||
RegionContainBench.cpp | ||
RepeatTileBench.cpp | ||
ResultsWriter.h | ||
RotatedRectBench.cpp | ||
RTreeBench.cpp | ||
ScalarBench.cpp | ||
ShaderMaskBench.cpp | ||
ShapesBench.cpp | ||
Sk4fBench.cpp | ||
SkBlend_optsBench.cpp | ||
SkGlyphCacheBench.cpp | ||
SkLinearBitmapPipelineBench.cpp | ||
SKPAnimationBench.cpp | ||
SKPAnimationBench.h | ||
SKPBench.cpp | ||
SKPBench.h | ||
skpbench.json | ||
SkRasterPipelineBench.cpp | ||
SortBench.cpp | ||
StrokeBench.cpp | ||
SwizzleBench.cpp | ||
TableBench.cpp | ||
TextBench.cpp | ||
TextBlobBench.cpp | ||
TileBench.cpp | ||
TileImageFilterBench.cpp | ||
TopoSortBench.cpp | ||
VertBench.cpp | ||
WritePixelsBench.cpp | ||
WriterBench.cpp | ||
Xfer4fBench.cpp | ||
XferF16Bench.cpp | ||
XfermodeBench.cpp |