skia2/bench
mtklein 8c1a4f80d9 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
2016-08-08 06:56:22 -07:00
..
AAClipBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
AlternatingColorPatternBench.cpp Reland of "Finish conversion to sk_sp<SkShader> (patchset #2 id:20001 of https://codereview.chromium.org/1803763002/ )" 2016-03-14 12:22:10 -07:00
AndroidCodecBench.cpp Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
AndroidCodecBench.h Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
BenchLogger.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
BenchLogger.h Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
Benchmark.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
Benchmark.h Began logging more gpu stats from nanobench 2015-12-02 09:05:38 -08:00
BezierBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
BigPathBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
BitmapBench.cpp Factor code to rotate a canvas about a point. 2016-07-12 15:01:19 -07:00
BitmapRectBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
BitmapRegionDecoderBench.cpp Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
BitmapRegionDecoderBench.h Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
BitmapScaleBench.cpp Valgrind is not a fan of uninitialized Src pixels. 2016-01-19 12:42:49 -08:00
BlurBench.cpp switch maskfilters to sk_sp 2016-04-04 10:02:58 -07:00
BlurImageFilterBench.cpp Update SkBlurImageFilter to sk_sp 2016-04-04 04:31:25 -07:00
BlurOccludedRRectBench.cpp Add new bench for occluded blurmaskfilter draws 2016-08-04 09:03:20 -07:00
BlurRectBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
BlurRectsBench.cpp switch maskfilters to sk_sp 2016-04-04 10:02:58 -07:00
BlurRoundRectBench.cpp switch maskfilters to sk_sp 2016-04-04 10:02:58 -07:00
ChartBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
check_bench_regressions.py Adds dashboard link for one-line plot on each alert item. 2014-05-13 17:38:17 +00:00
ChecksumBench.cpp SkMD5: .update() -> .write() 2016-04-25 10:29:36 -07:00
ChromeBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
CmapBench.cpp Move SkTypeface to sk_sp. 2016-05-12 10:09:31 -07:00
CodecBench.cpp Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
CodecBench.h Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
CodecBenchPriv.h Make CodecBench test kPremul and kUnpremul 2016-01-07 14:20:20 -08:00
ColorCodecBench.cpp Perform color correction on png decodes 2016-08-03 12:59:27 -07:00
ColorCodecBench.h Improve naive SkColorXform to half floats 2016-07-19 09:07:55 -07:00
ColorCubeBench.cpp Reland of [2] of "switch colorfilters to sk_sp (patchset #11 id:200001 of https://codereview.chromium.o… (patchset #1 id:1 of https://codereview.chromium.org/1821103004/ ) 2016-03-22 10:17:23 -07:00
ColorFilterBench.cpp Update SkXfermodeImageFilter to sk_sp 2016-04-05 12:48:34 -07:00
ColorPrivBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
ControlBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
CoverageBench.cpp remove 'deprecated' region from SkDraw 2016-04-27 07:49:17 -07:00
DashBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
DisplacementBench.cpp Update DisplacementMapEffect to sk_sp 2016-04-15 07:17:36 -07:00
DrawBitmapAABench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
DrawLatticeBench.cpp Add drawImageLattice() and drawBitmapLattice() APIs 2016-08-02 08:05:56 -07:00
EncoderBench.cpp Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
FontCacheBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
FontScalerBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
FSRectBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
GameBench.cpp Reland of "Finish conversion to sk_sp<SkShader> (patchset #2 id:20001 of https://codereview.chromium.org/1803763002/ )" 2016-03-14 12:22:10 -07:00
GeometryBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
GLBench.cpp Retract GrRenderTarget from GrTestTarget 2016-05-20 11:14:33 -07:00
GLBench.h Remove const from const int loops. 2015-10-01 09:43:39 -07:00
GLInstancedArraysBench.cpp remove explicit 'f' in glbench shader 2015-12-11 08:31:17 -08:00
GLVec4ScalarBench.cpp Make appending default precision be controled by GLSL 2015-10-26 08:38:26 -07:00
GLVertexAttributesBench.cpp Make appending default precision be controled by GLSL 2015-10-26 08:38:26 -07:00
GMBench.cpp Run GM benchs in bench mode 2016-05-16 09:09:18 -07:00
GMBench.h Remove const from const int loops. 2015-10-01 09:43:39 -07:00
GradientBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
GrMemoryPoolBench.cpp Make SkRandom::next[US]Fixed1 private; update documentation for SkRandom::nextSScalar1. 2016-03-31 06:13:22 -07:00
GrMipMapBench.cpp Lots of progress on switching to SkColorSpace rather than SkColorProfileType 2016-06-16 13:03:24 -07:00
GrResourceCacheBench.cpp Refactor to separate backend object lifecycle and GpuResource budget decision 2016-04-22 01:48:29 -07:00
gUniqueGlyphIDs.h switch array to uint16_t to fix overflows 2013-06-11 19:53:19 +00:00
HairlinePathBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
HardStopGradientBench_ScaleNumColors.cpp Add HardStopGradientBench_ScaleNumHardStops.cpp 2016-07-28 10:59:49 -07:00
HardStopGradientBench_ScaleNumHardStops.cpp Add HardStopGradientBench_ScaleNumHardStops.cpp 2016-07-28 10:59:49 -07:00
HardStopGradientBench_SpecialHardStops.cpp Add new benchmark for testing special hard stop gradient cases 2016-08-03 12:12:19 -07:00
ImageBench.cpp switch surface to sk_sp 2016-03-23 18:59:25 -07:00
ImageCacheBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
ImageFilterCollapse.cpp Update SkColorFilterImageFilter to sk_sp 2016-04-05 11:50:42 -07:00
ImageFilterDAGBench.cpp Update DisplacementMapEffect to sk_sp 2016-04-15 07:17:36 -07:00
InterpBench.cpp Reverse dependency between SkScalar.h and SkFixed.h. 2016-04-07 08:49:31 -07:00
LightingBench.cpp Rein in the use of SkDevice.h 2016-04-20 05:29:51 -07:00
LineBench.cpp Revert of Modify LineBench for drawing straight line (patchset #3 id:40001 of https://codereview.chromium.org/1936153002/ ) 2016-05-05 14:02:36 -07:00
MagnifierBench.cpp Update MagnifierImageFilter to sk_sp 2016-04-07 07:34:15 -07:00
MathBench.cpp SkLeanWindows.h: #include "Windows.h" fewer places 2016-06-07 17:21:10 -07:00
Matrix44Bench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
MatrixBench.cpp Revert of change mapRectScaleTranslate to pass args/ret by value (patchset #1 id:1 of https://codereview.chromium.org/2137853002/ ) 2016-07-10 11:45:35 -07:00
MatrixConvolutionBench.cpp distinguish distinct matrixconvolution benchmarks 2016-04-12 15:52:52 -07:00
MemoryBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
MemsetBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
MergeBench.cpp Update SkImageSource to sk_sp 2016-04-01 09:28:51 -07:00
microbench.json Fix the other microbench schema 2014-07-25 08:30:11 -07:00
MipMapBench.cpp respect srgb gamma when building mips 2016-06-10 11:41:47 -07:00
MorphologyBench.cpp Update SkMorphology ImageFilters to sk_sp 2016-04-05 09:09:37 -07:00
MutexBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
nanobench.cpp update picture recording benchmarks to allow comparison with SkLiteRecorder 2016-08-08 06:56:22 -07:00
nanobench.h Lots of progress on switching to SkColorSpace rather than SkColorProfileType 2016-06-16 13:03:24 -07:00
nanobenchAndroid.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
nanobenchAndroid.h Simplify linkages to Android framework internals 2015-10-26 07:21:32 -07:00
pack_int_uint16_t_Bench.cpp Add a bench to measure the best way to pack from int to uint16_t with SSE. 2016-07-15 07:45:53 -07:00
PatchBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
PatchGridBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
PathBench.cpp Benchmark rotated rect with AA/noAA 2016-06-20 14:05:27 -07:00
PathIterBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
PDFBench.cpp SkPDF: PDFStream has-a not is-a PDFDict 2016-07-29 10:13:18 -07:00
PerlinNoiseBench.cpp move setshader to sk_sp, re-using SK_SUPPORT_LEGACY_CREATESHADER_PTR 2016-03-25 09:08:00 -07:00
PictureNestingBench.cpp return pictures as sk_sp 2016-03-18 07:25:55 -07:00
PictureOverheadBench.cpp SkLite* 2016-08-06 12:51:51 -07:00
PicturePlaybackBench.cpp return pictures as sk_sp 2016-03-18 07:25:55 -07:00
PremulAndUnpremulAlphaOpsBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
ReadPixBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
RecordingBench.cpp update picture recording benchmarks to allow comparison with SkLiteRecorder 2016-08-08 06:56:22 -07:00
RecordingBench.h update picture recording benchmarks to allow comparison with SkLiteRecorder 2016-08-08 06:56:22 -07:00
RectanizerBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
RectBench.cpp Revert of try to speed-up maprect + round2i + contains (patchset #8 id:140001 of https://codereview.chromium.org/2133413002/ ) 2016-07-11 14:57:26 -07:00
RectoriBench.cpp switch maskfilters to sk_sp 2016-04-04 10:02:58 -07:00
RefCntBench.cpp Clean up some unused atomic routines. 2016-07-27 08:40:45 -07:00
RegionBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
RegionContainBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
RepeatTileBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
ResultsWriter.h Move SkTArray to include/private. 2016-02-17 13:13:44 -08:00
RotatedRectBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
RTreeBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
ScalarBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
ShaderMaskBench.cpp move setshader to sk_sp, re-using SK_SUPPORT_LEGACY_CREATESHADER_PTR 2016-03-25 09:08:00 -07:00
ShapesBench.cpp Begin instanced rendering for simple shapes 2016-07-07 08:49:11 -07:00
Sk4fBench.cpp Sk4f: add floor() 2016-02-09 15:41:36 -08:00
SkBlend_optsBench.cpp Correct sRGB <-> linear everywhere. 2016-07-20 18:10:07 -07:00
SkGlyphCacheBench.cpp SkTypeface::MakeFromName to take SkFontStyle. 2016-05-31 11:42:37 -07:00
SkLinearBitmapPipelineBench.cpp update callers to not use SkColorProfileType 2016-06-21 10:28:14 -07:00
SKPAnimationBench.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
SKPAnimationBench.h Make nanobench zoom animation time based 2015-06-29 14:06:10 -07:00
SKPBench.cpp switch surface to sk_sp 2016-03-23 18:59:25 -07:00
SKPBench.h Began logging more gpu stats from nanobench 2015-12-02 09:05:38 -08:00
skpbench.json Fix scale type in JSON format 2014-06-26 15:39:31 -07:00
SkRasterPipelineBench.cpp SkRasterPipeline: new APIs for fusion 2016-07-29 14:27:41 -07:00
SortBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
StrokeBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
SwizzleBench.cpp Optimize CMYK->RGBA (BGRA) transform for jpeg decodes 2016-02-08 13:26:25 -08:00
TableBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
TextBench.cpp Move SkTypeface to sk_sp. 2016-05-12 10:09:31 -07:00
TextBlobBench.cpp SkTypeface::MakeFromName to take SkFontStyle. 2016-05-31 11:42:37 -07:00
TileBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
TileImageFilterBench.cpp Update TileImageFilter to sk_sp 2016-04-15 07:57:40 -07:00
TopoSortBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
VertBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
WritePixelsBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
WriterBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
Xfer4fBench.cpp switch xfermodes over to sk_sp 2016-03-29 11:32:50 -07:00
XferF16Bench.cpp remove U16 support, just support F16 2016-04-14 09:02:14 -07:00
XfermodeBench.cpp Add some benches for SkArithmeticMode. 2016-04-08 14:29:47 -07:00