skia2/bench
mtklein a06a953121 Prune SkRTree
- Propagate a bunch of constant parameters through.
  - Delete code that's not used when bulk loading.
  - Allocate all Nodes together.
  - Stay in SkRect.

Doing a single malloc for the nodes can't not have improved memory usage.

Looks like this might improve record performance ~5%, probably mostly from
staying in SkRects.  This finally dethrones building the BBH as the hot spot.
(Now it's mapping user bounds back to device bounds and adjusting for paints.)

Recording time changes from my MBP:
    desk_rectangletransition.skp	11.5us -> 11.7us	1x
             desk_forecastio.skp	 115us ->  114us	0.98x
                desk_booking.skp	 550us ->  541us	0.98x
            tabl_mercurynews.skp	 176us ->  173us	0.98x
                   tabl_hsfi.skp	 294us ->  287us	0.98x
              desk_wordpress.skp	 351us ->  343us	0.98x
           tabl_worldjournal.skp	 439us ->  426us	0.97x
                  tabl_gmail.skp	20.3us -> 19.7us	0.97x
         desk_youtubetvvideo.skp	10.8us -> 10.4us	0.97x
             desk_googleplus.skp	 1.1ms -> 1.07ms	0.97x
               tabl_slashdot.skp	 106us ->  103us	0.97x
         desk_jsfiddlebigcar.skp	26.7us -> 25.7us	0.96x
               tabl_techmeme.skp	95.4us -> 91.7us	0.96x
             tabl_deviantart.skp	 133us ->  127us	0.96x
              desk_pinterest.skp	40.6us -> 38.9us	0.96x
                 desk_carsvg.skp	 195us ->  187us	0.96x
               tabl_engadget.skp	 376us ->  359us	0.96x
                tabl_sahadan.skp	60.5us -> 57.5us	0.95x
      tabl_culturalsolutions.skp	 255us ->  242us	0.95x
                  tabl_gspro.skp	58.3us -> 55.5us	0.95x
               desk_linkedin.skp	 146us ->  138us	0.94x
                   desk_ebay.skp	 192us ->  181us	0.94x
                    tabl_cnn.skp	 467us ->  440us	0.94x
     desk_jsfiddlehumperclip.skp	29.9us -> 28.1us	0.94x
               desk_tigersvg.skp	43.2us -> 40.5us	0.94x
           desk_yahooanswers.skp	 131us ->  123us	0.94x
desk_googlespreadsheetdashed.skp	1.18ms -> 1.11ms	0.94x
                desk_blogger.skp	 193us ->  181us	0.94x
                tabl_mozilla.skp	1.82ms ->  1.7ms	0.94x
                    tabl_mlb.skp	 145us ->  136us	0.93x
              mobi_wikipedia.skp	 577us ->  539us	0.93x
               tabl_frantzen.skp	54.1us -> 50.4us	0.93x
                  desk_baidu.skp	87.9us -> 81.9us	0.93x
             desk_techcrunch.skp	 224us ->  209us	0.93x
                 desk_sfgate.skp	 206us ->  192us	0.93x
                  tabl_ukwsj.skp	 269us ->  250us	0.93x
               desk_facebook.skp	 316us ->  293us	0.93x
            desk_gmailthread.skp	 205us ->  190us	0.93x
         tabl_googlecalendar.skp	 158us ->  147us	0.93x
                   tabl_digg.skp	 382us ->  354us	0.93x
                 desk_amazon.skp	 106us -> 98.5us	0.93x
          tabl_androidpolice.skp	 693us ->  642us	0.93x
                tabl_nytimes.skp	 206us ->  191us	0.92x
                    desk_gws.skp	 124us ->  114us	0.92x
                desk_youtube.skp	 255us ->  235us	0.92x
           tabl_cuteoverload.skp	 583us ->  537us	0.92x
            desk_oldinboxapp.skp	  18us -> 16.6us	0.92x
             desk_mobilenews.skp	 297us ->  273us	0.92x
                 tabl_pravda.skp	 168us ->  154us	0.92x
              tabl_vnexpress.skp	 236us ->  217us	0.92x
          desk_css3gradients.skp	 202us ->  185us	0.92x
            tabl_gamedeksiam.skp	 508us ->  464us	0.91x
                desk_wowwiki.skp	1.02ms ->  929us	0.91x
                   desk_espn.skp	 209us ->  191us	0.91x
             desk_chalkboard.skp	 315us ->  284us	0.9x
                 desk_mapsvg.skp	 607us ->  543us	0.89x
            desk_pokemonwiki.skp	5.18ms -> 4.62ms	0.89x
               desk_samoasvg.skp	 335us ->  298us	0.89x
        desk_youtubetvbrowse.skp	10.1us -> 8.59us	0.85x
BUG=skia:3085, skia:2834

Review URL: https://codereview.chromium.org/734723002
2014-11-18 09:27:49 -08:00
..
AAClipBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
AlternatingColorPatternBench.cpp Remove gpu shader optimatization for solid white or trans black colors 2014-07-21 11:37:28 -07:00
bench_compare.py Make bench_compare executable. 2013-11-12 15:25:31 +00:00
bench_util.py Restore bench_util.py 2014-08-08 17:28:53 -04:00
BenchLogger.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
BenchLogger.h Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
Benchmark.cpp Save/Restore around bench runs. 2014-10-02 13:03:58 -07:00
Benchmark.h Distinguish common and unique names for skiaperf.com. 2014-09-10 12:05:59 -07:00
BezierBench.cpp Draw more accurate thick-stroked Beziers (disabled) 2014-10-09 05:36:04 -07:00
BitmapBench.cpp Revert "Revert of create shaderproc for nofilter-opaque-dx (patchset #7 id:120001 of https://codereview.chromium.org/664783004/)" 2014-10-23 14:35:01 -07:00
BitmapRectBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
BitmapScaleBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
BlurBench.cpp 2D kernel initial wiring for Guassian 2014-08-11 13:55:34 -07:00
BlurImageFilterBench.cpp 2D kernel initial wiring for Guassian 2014-08-11 13:55:34 -07:00
BlurRectBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
BlurRoundRectBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
ChartBench.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -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 Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
ChromeBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
CmapBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
ColorCubeBench.cpp Attempt at fixing color cube bench 2014-10-09 11:35:09 -07:00
ColorFilterBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
ColorPrivBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
CoverageBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
DashBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
DecodeBench.cpp Cleanup: Rename SkOSPath functions. 2014-07-28 19:26:58 -07:00
DeferredSurfaceCopyBench.cpp check for newSurface failure 2014-10-02 12:58:49 -07:00
DisplacementBench.cpp remove unnecessary bitmapdevice references 2014-06-27 05:49:54 -07:00
ETCBitmapBench.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
FontCacheBench.cpp Slim Skia down to just one murmur3 implementation. 2014-07-10 06:03:46 -07:00
FontScalerBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
FSRectBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
GameBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
gen_bench_expectations.py Added in framework to get more bench data 2014-06-12 11:27:40 -07:00
GeometryBench.cpp Revert of Start to vectorize SkTileGrid. (patchset #48 id:1670001 of https://codereview.chromium.org/634543004/) 2014-10-20 10:43:55 -07:00
GMBench.cpp SKPs-as-benches in nanobench 2014-08-01 07:46:53 -07:00
GMBench.h SKPs-as-benches in nanobench 2014-08-01 07:46:53 -07:00
GradientBench.cpp remove internal repeat count from gradient benches 2014-08-14 12:24:46 -07:00
GrMemoryPoolBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
GrOrderedSetBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
GrResourceCacheBench.cpp Make GrResourceCache2 responsible for calling release, abandon, and ~. 2014-11-14 13:33:09 -08:00
gUniqueGlyphIDs.h switch array to uint16_t to fix overflows 2013-06-11 19:53:19 +00:00
HairlinePathBench.cpp Avoid warning in nanobench related to loop count with nvprmsaa4 2014-11-11 06:57:07 -08:00
ImageCacheBench.cpp SkResourceCache::Key namespace support. 2014-10-22 11:20:40 -07:00
ImageDecodeBench.cpp Cleanup: Rename SkOSPath functions. 2014-07-28 19:26:58 -07:00
ImageFilterDAGBench.cpp draft gpu support in nanobench 2014-07-01 08:43:42 -07:00
InterpBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
LightingBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
LineBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
MagnifierBench.cpp remove unnecessary bitmapdevice references 2014-06-27 05:49:54 -07:00
MathBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
Matrix44Bench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
MatrixBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
MatrixConvolutionBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
MemcpyBench.cpp Clean up some benches that answer questions we're no longer asking. 2014-08-27 06:34:16 -07:00
MemoryBench.cpp Clean up some benches that answer questions we're no longer asking. 2014-08-27 06:34:16 -07:00
MemsetBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
MergeBench.cpp remove unnecessary bitmapdevice references 2014-06-27 05:49:54 -07:00
microbench.json Fix the other microbench schema 2014-07-25 08:30:11 -07:00
MorphologyBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
MutexBench.cpp Fix thread unsafe mutex initialization. 2014-07-25 11:52:48 -07:00
nanobench.cpp Revert of Make nanobench and dm be usable from Chromium build (patchset #5 id:80001 of https://codereview.chromium.org/657373002/) 2014-11-13 08:06:40 -08:00
PatchBench.cpp Added bench for grid of patches. 2014-08-15 13:30:47 -07:00
PatchGridBench.cpp Added bench for grid of patches. 2014-08-15 13:30:47 -07:00
PathBench.cpp (temporarily?) disable no-oped benches 2014-07-16 20:23:43 -04:00
PathIterBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
PathUtilsBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
PerlinNoiseBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
PictureNestingBench.cpp Do not calculate many sierpinski fractals for each nanobench run unless needed 2014-11-18 04:50:50 -08:00
PicturePlaybackBench.cpp Add benchmark to compare different BBH query patterns. 2014-11-11 10:39:27 -08:00
PremulAndUnpremulAlphaOpsBench.cpp Use unpremul for premul_and_unpremul_alpha_ bench. 2014-07-11 10:45:11 -07:00
ReadPixBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
RecordingBench.cpp Try out SkTree in nanobench. 2014-10-29 14:15:10 -07:00
RecordingBench.h Measure picture recording speed in nanobench. 2014-09-10 12:19:30 -07:00
RectanizerBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
RectBench.cpp Remove aarects benchmark. Redundant with rotated_rects* bench and *much* slower. 2014-08-14 13:03:58 -07:00
RectoriBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
RefCntBench.cpp Add support for 64bit atomic inc/dec/cas 2014-07-11 08:42:11 -07:00
RegionBench.cpp cleanup and optimize rect intersect routines 2014-10-09 14:29:01 -07:00
RegionContainBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
RepeatTileBench.cpp remove alphatype from colortable 2014-09-29 12:10:27 -07:00
ResultsWriter.h nanobench: flush after recording every Nth data point. 2014-10-14 08:40:43 -07:00
RotatedRectBench.cpp Make the rotated rects bench allow more alpha/color variations and an arbitrary xfermode::mode. 2014-08-08 07:43:29 -07:00
RTreeBench.cpp Prune SkRTree 2014-11-18 09:27:49 -08:00
ScalarBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
ShaderMaskBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
SkipZeroesBench.cpp Qualify the return value of SkImageDecoder::decode 2014-10-22 12:07:00 -07:00
SKPBench.cpp Try out SkTree in nanobench. 2014-10-29 14:15:10 -07:00
SKPBench.h Distinguish common and unique names for skiaperf.com. 2014-09-10 12:05:59 -07:00
skpbench.json Fix scale type in JSON format 2014-06-26 15:39:31 -07:00
SortBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
StrokeBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
TableBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
TextBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
tile_analyze.py Script to plot tile vs. viewport comparison for given platform and revision. 2013-02-13 23:22:29 +00:00
TileBench.cpp Disable bogus _scaled benches until we can figure out why they're bogus. 2014-06-24 15:19:26 -07:00
VertBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
WritePixelsBench.cpp Hide fields in SkImageInfo 2014-09-03 11:54:58 -07:00
WriterBench.cpp Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
XfermodeBench.cpp "NULL !=" = NULL 2014-09-05 13:34:00 -07:00