RESOLVED FIXED Bug 15148
Poor performance on crazy DOM raytracer
https://bugs.webkit.org/show_bug.cgi?id=15148
Summary Poor performance on crazy DOM raytracer
David Smith
Reported 2007-09-06 00:18:15 PDT
WebKit loses to Opera by a very large margin on the linked benchmark.
Attachments
Speeds up the "full render" from >400 seconds to ~45 seconds for me (9.81 KB, patch)
2007-09-06 00:23 PDT, David Smith
no flags
Fix my email address, and remove a stray formatting change (9.05 KB, patch)
2007-09-06 00:58 PDT, David Smith
mjs: review-
Addresses review comments (8.19 KB, patch)
2007-09-08 14:47 PDT, David Smith
mjs: review+
David Smith
Comment 1 2007-09-06 00:23:57 PDT
Created attachment 16205 [details] Speeds up the "full render" from >400 seconds to ~45 seconds for me Thanks to everyone on irc for their suggestions and prodding :) Particularly the suggestion of using ListHashSet from Maciej.
David Smith
Comment 2 2007-09-06 00:58:44 PDT
Created attachment 16206 [details] Fix my email address, and remove a stray formatting change Minor tweaks, sorry for the spam.
Maciej Stachowiak
Comment 3 2007-09-08 05:31:57 PDT
This seems like a gratuitous change: - for ( ; (r = it.current()); ++it) { + for ( ; (r = it.current()); ++it ) { There's no need to use new here, you can just make the Vector a local variable: + Vector<RenderObject*>* deadObjects = new Vector<RenderObject*>(); In fact, it might be worthwhile giving it an inline capacity to handle the common case effeciently. Something like: Vector<RenderObject*, 16> deadObjects; r- to address these points.
David Smith
Comment 4 2007-09-08 14:47:39 PDT
Created attachment 16229 [details] Addresses review comments >This seems like a gratuitous change: > >- for ( ; (r = it.current()); ++it) { >+ for ( ; (r = it.current()); ++it ) { Oops, leftover from a find & replace style fixup. Fixed. >There's no need to use new here, you can just make the Vector a local variable: > >+ Vector<RenderObject*>* deadObjects = new Vector<RenderObject*>(); > >In fact, it might be worthwhile giving it an inline capacity to handle the >common case effeciently. Something like: > >Vector<RenderObject*, 16> deadObjects; Fixed.
Maciej Stachowiak
Comment 5 2007-09-09 20:21:30 PDT
Comment on attachment 16229 [details] Addresses review comments r=me
Oliver Hunt
Comment 6 2007-09-09 20:29:36 PDT
David Smith
Comment 7 2007-09-09 23:10:42 PDT
Fixed in r25464
Note You need to log in before you can comment on or make changes to this bug.