RESOLVED FIXED90074
Don't malloc RenderGeometryMap steps individually
https://bugs.webkit.org/show_bug.cgi?id=90074
Summary Don't malloc RenderGeometryMap steps individually
Antti Koivisto
Reported 2012-06-27 07:13:08 PDT
Mallocs and frees for steps under RenderGeometryMap::pus/popMappingsToAncestor can total ~2% of the profile when animating transforms.
Attachments
patch (12.10 KB, patch)
2012-06-27 08:18 PDT, Antti Koivisto
webkit.review.bot: commit-queue-
Archive of layout-test-results from ec2-cr-linux-02 (726.31 KB, application/zip)
2012-06-27 11:08 PDT, WebKit Review Bot
no flags
patch2 (12.47 KB, patch)
2012-06-28 11:28 PDT, Antti Koivisto
simon.fraser: review+
Radar WebKit Bug Importer
Comment 1 2012-06-27 07:14:30 PDT
Antti Koivisto
Comment 2 2012-06-27 08:18:39 PDT
WebKit Review Bot
Comment 3 2012-06-27 08:22:44 PDT
Attachment 149752 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1 Source/WebCore/rendering/RenderGeometryMap.h:118: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 1 in 3 files If any of these errors are false positives, please file a bug against check-webkit-style.
Simon Fraser (smfr)
Comment 4 2012-06-27 08:35:07 PDT
Comment on attachment 149752 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=149752&action=review > Source/WebCore/rendering/RenderGeometryMap.h:61 > + OwnPtr<TransformationMatrix> m_transform; // Includes offset if non-null. How is this copyable, since it has an OwnPtr<>. Doesn't using it in a Vector by value require that it's copyable? Also, does the copy cost show up on profiles, since we insert before the end often?
WebKit Review Bot
Comment 5 2012-06-27 11:08:44 PDT
Comment on attachment 149752 [details] patch Attachment 149752 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/13097817 New failing tests: compositing/geometry/video-fixed-scrolling.html compositing/iframes/overlapped-nested-iframes.html
WebKit Review Bot
Comment 6 2012-06-27 11:08:48 PDT
Created attachment 149775 [details] Archive of layout-test-results from ec2-cr-linux-02 The attached test failures were seen while running run-webkit-tests on the chromium-ews. Bot: ec2-cr-linux-02 Port: <class 'webkitpy.common.config.ports.ChromiumXVFBPort'> Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick
Antti Koivisto
Comment 7 2012-06-27 14:39:06 PDT
> How is this copyable, since it has an OwnPtr<>. Doesn't using it in a Vector by value require that it's copyable? SimpleClassHashTraits should make it safe. Vector doesn't need copying, just moving, and moving with memcpy/memmove works just fine with OwnPtr. The same reason pure Vector<OwnPtr<Foo>> works basically (which also has SimpleClassHashTraits). I'll see about the test failures though. > Also, does the copy cost show up on profiles, since we insert before the end often? I'll check but that seems unlikely. The inserts are rarely very far from the end and the type is not particularly big.
Antti Koivisto
Comment 8 2012-06-28 11:28:12 PDT
Created attachment 149978 [details] patch2 Fixed the test failures.
Antti Koivisto
Comment 9 2012-06-28 11:58:40 PDT
Note You need to log in before you can comment on or make changes to this bug.