views: Avoid a malloc for every view being painted.
commit03619407b9ec7b47b0d96e265f2574dc8b369b1c
authordanakj <danakj@chromium.org>
Thu, 7 May 2015 21:00:19 +0000 (7 14:00 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 7 May 2015 21:01:07 +0000 (7 21:01 +0000)
treec7df3cb40e391f576be047c5b70403bfb1a339e7
parent0df96fce52dbcdf0543af167dc12be3760c02b32
views: Avoid a malloc for every view being painted.

Instead of making a scoped_ptr<ClipTransformRecorder>, we just
instantiate one, and make the ClipTransformRecorder into a no-op if
no clips or transforms are set on it.

This patch changes the time to do UpdateLayers (after making
gfx::ImageSkiaReps immutable cuz they dominate times for now) for a
single tab loading spinner from 0.199594ms to 0.179203ms on a linux
z620, giving a 10% reduction in frame record time. I used a mean of
3000 samples in each run to reduce noise.

R=sky
BUG=466426

Review URL: https://codereview.chromium.org/1125363003

Cr-Commit-Position: refs/heads/master@{#328824}
ui/compositor/clip_transform_recorder.cc
ui/views/view.cc