Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(680)

Issue 416403007: cc: Only create tiling eviction iterators as they are required. (Closed)

Created:
6 years, 5 months ago by vmpstr
Modified:
6 years, 4 months ago
Reviewers:
reveman
CC:
chromium-reviews, cc-bugs_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

cc: Only create tiling eviction iterators as they are required. Since we potentially evict tiles from all tilings, we need to ensure that we don't create all of the tiling iterators if that is not required. This is because tiling eviction tile iterators are not cheap to create. The idea is to keep a full ordering of _tilings_ instead of tiling iterators and only create the iterator as we visit a tiling for which an iterator has not yet been created. Performance data: Before: layer_eviction_tile_iterator_construct: 0_0_100x100= 13791.8828125 runs/s 5000_0_100x100= 12871.0869140625 runs/s 9999_0_100x100= 13924.6796875 runs/s layer_eviction_tile_iterator_construct_and_iterate: 32_100x100= 13579.04296875 runs/s 32_500x500= 13694.36328125 runs/s 64_100x100= 13655.9853515625 runs/s 64_500x500= 13705.3330078125 runs/s After: layer_eviction_tile_iterator_construct: 0_0_100x100= 50127.99609375 runs/s (+260%) 5000_0_100x100= 28462.0546875 runs/s (+121%) 9999_0_100x100= 30606.740234375 runs/s (+120%) layer_eviction_tile_iterator_construct_and_iterate: 32_100x100= 47513.9296875 runs/s (+250%) 32_500x500= 48186.38671875 runs/s (+252%) 64_100x100= 46927.79296875 runs/s (+244%) 64_500x500= 46660.77734375 runs/s (+240%) R=reveman

Patch Set 1 #

Total comments: 11
Unified diffs Side-by-side diffs Delta from patch set Stats (+30 lines, -19 lines) Patch
M cc/layers/picture_layer_impl.h View 1 chunk +3 lines, -1 line 11 comments Download
M cc/layers/picture_layer_impl.cc View 6 chunks +27 lines, -18 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
vmpstr
PTAL. Note that a similar change to the raster tile iterator makes little difference in ...
6 years, 5 months ago (2014-07-25 23:52:02 UTC) #1
reveman
https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h File cc/layers/picture_layer_impl.h (right): https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h#newcode85 cc/layers/picture_layer_impl.h:85: std::vector<PictureLayerTiling::TilingEvictionTileIterator> iterators_; is there no compile time limit to ...
6 years, 5 months ago (2014-07-26 00:30:49 UTC) #2
vmpstr
https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h File cc/layers/picture_layer_impl.h (right): https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h#newcode85 cc/layers/picture_layer_impl.h:85: std::vector<PictureLayerTiling::TilingEvictionTileIterator> iterators_; On 2014/07/26 00:30:49, reveman wrote: > is ...
6 years, 4 months ago (2014-07-28 15:06:16 UTC) #3
reveman
https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h File cc/layers/picture_layer_impl.h (right): https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h#newcode85 cc/layers/picture_layer_impl.h:85: std::vector<PictureLayerTiling::TilingEvictionTileIterator> iterators_; On 2014/07/28 15:06:16, vmpstr wrote: > On ...
6 years, 4 months ago (2014-07-28 16:19:34 UTC) #4
vmpstr
https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h File cc/layers/picture_layer_impl.h (right): https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h#newcode85 cc/layers/picture_layer_impl.h:85: std::vector<PictureLayerTiling::TilingEvictionTileIterator> iterators_; On 2014/07/28 16:19:33, reveman wrote: > On ...
6 years, 4 months ago (2014-07-28 18:15:09 UTC) #5
reveman
https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h File cc/layers/picture_layer_impl.h (right): https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h#newcode85 cc/layers/picture_layer_impl.h:85: std::vector<PictureLayerTiling::TilingEvictionTileIterator> iterators_; On 2014/07/28 18:15:08, vmpstr wrote: > On ...
6 years, 4 months ago (2014-07-28 19:06:14 UTC) #6
vmpstr
https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h File cc/layers/picture_layer_impl.h (right): https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h#newcode86 cc/layers/picture_layer_impl.h:86: std::vector<PictureLayerTiling*> tilings_; On 2014/07/28 19:06:14, reveman wrote: > On ...
6 years, 4 months ago (2014-07-28 19:27:05 UTC) #7
reveman
On 2014/07/28 19:27:05, vmpstr wrote: > https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h > File cc/layers/picture_layer_impl.h (right): > > https://codereview.chromium.org/416403007/diff/1/cc/layers/picture_layer_impl.h#newcode86 > ...
6 years, 4 months ago (2014-07-28 20:03:57 UTC) #8
vmpstr
> > - No vectors in layer eviction iterators. > > - More vectors in ...
6 years, 4 months ago (2014-07-28 20:25:01 UTC) #9
reveman
On 2014/07/28 20:25:01, vmpstr wrote: > > > - No vectors in layer eviction iterators. ...
6 years, 4 months ago (2014-07-28 20:48:50 UTC) #10
vmpstr
6 years, 4 months ago (2014-07-28 23:35:46 UTC) #11
This is kind of what I ended up with: https://codereview.chromium.org/428533008/
Note that I wouldn't be comfortable landing that, since I find that code more
unreadable. Let me know if there's some fundamental thing that I might have
misunderstood about what you meant. What I mean to say that we can change some
loops to do {} whiles, do some cosmetic changes, etc, but if the overall code
for determining which tiling is next to evict is remains this complicated, then
I'm not sure I can land it.

Powered by Google App Engine
This is Rietveld 408576698