update picture recording benchmarks to allow comparison with SkLiteRecorder
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
diff --git a/bench/RecordingBench.h b/bench/RecordingBench.h
index 0a8befe..a5793b3 100644
--- a/bench/RecordingBench.h
+++ b/bench/RecordingBench.h
@@ -13,7 +13,7 @@
class RecordingBench : public Benchmark {
public:
- RecordingBench(const char* name, const SkPicture*, bool useBBH);
+ RecordingBench(const char* name, const SkPicture*, bool useBBH, bool lite);
protected:
const char* onGetName() override;
@@ -22,9 +22,10 @@
SkIPoint onGetSize() override;
private:
- SkAutoTUnref<const SkPicture> fSrc;
+ sk_sp<const SkPicture> fSrc;
SkString fName;
bool fUseBBH;
+ bool fLite;
typedef Benchmark INHERITED;
};