RESOLVED WORKSFORME 45347
[EFL] Need to optimize Rendering
https://bugs.webkit.org/show_bug.cgi?id=45347
Summary [EFL] Need to optimize Rendering
Ryuan Choi
Reported 2010-09-07 17:44:11 PDT
I tested how many rect was rendered. EFL: until finishing google.com in EWebLauncher [EFL] 6 will be drawn [EFL] 0 will be drawn [EFL] 11 will be drawn [EFL] 2 will be drawn [EFL] 4 will be drawn [EFL] 4 will be drawn [EFL] 4 will be drawn [EFL] 2 will be drawn [EFL] 5 will be drawn [EFL] 14 will be drawn GTK+: same condition [GTK+] 1 rect will be drawn [GTK+] 1 rect will be drawn [GTK+] 1 rect will be drawn [GTK+] 1 rect will be drawn [GTK+] 1 rect will be drawn [GTK+] 1 rect will be drawn [GTK+] 1 rect will be drawn Although count is good factor to measure render performance, I believe that EWK have point of improvement. I suggest below. 1. optimize code a) remove 0 case, b) move below code out of EINA_ITERATOR_FOREACH ewk_view_paint_context_translate(ctxt, -sx, -sy); 2. add shouldCoalesce like GTK+. 3. use cairo_region included in Cairo 1.10.0 with some logic. currently, EWK just add rectangle without considering region.
Attachments
Patch (4.16 KB, patch)
2010-09-07 19:44 PDT, Ryuan Choi
no flags
Ryuan Choi
Comment 1 2010-09-07 19:44:29 PDT
Ryuan Choi
Comment 2 2010-09-07 19:51:29 PDT
(In reply to comment #1) > Created an attachment (id=66832) [details] > Patch This patch is for 1 and 2 I suggested. I tested this in http://www.naver.com number is # of rectangles calling paint_contents. [without this patch] 6 should be rendered 0 should be rendered 10 should be rendered 0 should be rendered 9 should be rendered 0 should be rendered 4 should be rendered 0 should be rendered 7 should be rendered 0 should be rendered 20 should be rendered 124 should be rendered 0 should be rendered 128 should be rendered 5 should be rendered 16 should be rendered 10 should be rendered 0 should be rendered 29 should be rendered 53 should be rendered 0 should be rendered 6 should be rendered 3 should be rendered 17 should be rendered 1 should be rendered 1 should be rendered 8 should be rendered 4 should be rendered 11 should be rendered 1 should be rendered 1 should be rendered 1 should be rendered 1 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 1 should be rendered 1 should be rendered 26 should be rendered 0 should be rendered 1 should be rendered [with this patch] 6 should be rendered 10 should be rendered 7 should be rendered 1 should be rendered 2 should be rendered 6 should be rendered 18 should be rendered 24 should be rendered 1 should be rendered 36 should be rendered 16 should be rendered 1 should be rendered 10 should be rendered 1 should be rendered 1 should be rendered 27 should be rendered 4 should be rendered 3 should be rendered 10 should be rendered 4 should be rendered 4 should be rendered 2 should be rendered 1 should be rendered 4 should be rendered 1 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 11 should be rendered 1 should be rendered 1 should be rendered 1 should be rendered 1 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 2 should be rendered 3 should be rendered
Ryuan Choi
Comment 3 2010-09-07 19:52:51 PDT
(In reply to comment #0) > I tested how many rect was rendered. > EFL: until finishing google.com in EWebLauncher > [EFL] 6 will be drawn > [EFL] 0 will be drawn > [EFL] 11 will be drawn > [EFL] 2 will be drawn > [EFL] 4 will be drawn > [EFL] 4 will be drawn > [EFL] 4 will be drawn > [EFL] 2 will be drawn > [EFL] 5 will be drawn > [EFL] 14 will be drawn > > GTK+: same condition > [GTK+] 1 rect will be drawn > [GTK+] 1 rect will be drawn > [GTK+] 1 rect will be drawn > [GTK+] 1 rect will be drawn > [GTK+] 1 rect will be drawn > [GTK+] 1 rect will be drawn > [GTK+] 1 rect will be drawn > > Although count is good factor to measure render performance, Although count is not a good factor to measure render performance, > I believe that EWK have point of improvement. > > I suggest below. > 1. optimize code > a) remove 0 case, > b) move below code out of EINA_ITERATOR_FOREACH > ewk_view_paint_context_translate(ctxt, -sx, -sy); > > 2. add shouldCoalesce like GTK+. > > 3. use cairo_region included in Cairo 1.10.0 with some logic. > currently, EWK just add rectangle without considering region.
Lucas De Marchi
Comment 4 2011-01-06 09:19:58 PST
We need better measurements for this.
Note You need to log in before you can comment on or make changes to this bug.