Bug 96274
| Summary: | YouTube’s start page is very slow | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Paul Menzel <paulepanter> |
| Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | bugs-noreply, mrobinson |
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Paul Menzel
Using Debian Sid/unstable with libwebkitgtk 1.8.1-3.1, YouTube’s start page is really slow for some month now. Accessing the URL location bar or scrolling takes several seconds. All other YouTube pages work fine. So I guess YouTube changed something on their start page causing this. Maybe this is JavaScript related?
I confirmed this issue with GtkLauncher and Midori built from Git.
commit fefc3b2cbe463815a554ea8490390ba46177d056
Author: Christian Dywan <christian@twotoasts.de>
Date: Sun Sep 9 21:50:31 2012 +0200
Merge build_thumbnail_path into Midori.SpeedDial
Please advise me how to track that issue down.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Paul Menzel
$ glxinfo|grep -iE "render(er|ing)"
direct rendering: Yes
OpenGL renderer string: Gallium 0.4 on AMD RS780
Paul Menzel
kov in #webkit on irc.freenode.net is not able to reproduce it with Epiphany and GtkLauncher. He uses an Intel graphics chip with the Intel driver so it might be a driver problem.
Paul Menzel
By the way, when YouTube’s start page is loaded, top does not show a high CPU usage. Xorg is shown to use 20 %. I do not know if that is an indication for anything though.
Paul Menzel
I hate that. After running GtkLauncher under perf_3.2 everything worked fine.
$ perf report
2,86% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderBox::mapLocalToContainer(WebCore::RenderBoxModelObject*, bool,
2,63% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderBox::computeRectForRepaint(WebCore::RenderBoxModelObject*, Web
2,14% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderObject::containingBlock() const
Then trying Midori again everything worked too. So now I cannot reproduce it again. I am going to try that after a restart again and report back.
Paul Menzel
I can reproduce it again after restarting the system. I am not sure how to debug this. Help is very much appreciated.
# cmdline : /usr/bin/perf_3.2 record /usr/lib/webkitgtk-3.0-0/libexec/GtkLauncher
# event : name = cycles, type = 0, config = 0x0, config1 = 0x0, config2 = 0x0, excl_usr = 0, excl_kern = 0, id = { 79, 80 }
# HEADER_CPU_TOPOLOGY info available, use -I to display
# ========
#
# Events: 6K cycles
#
# Overhead Command Shared Object Symbol
# ........ ........... .................................. ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
#
2.09% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderBox::computeRectForRepaint(WebCore::RenderBoxModelObject*, WebCore::IntRect&, bool) const
1.97% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderBox::mapLocalToContainer(WebCore::RenderBoxModelObject*, bool, bool, WebCore::TransformState&, bool*) const
1.53% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderLayer::hitTestLayer(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::HitTestRequest const&, WebCore::HitTestResult&, WebCore::IntRect const&, WebCore::IntPoint const&, bool, WebCore::HitTestingTransformState const*, double*)
1.45% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderLayer::convertToLayerCoords(WebCore::RenderLayer const*, WebCore::IntPoint&) const
1.35% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] __x86.get_pc_thunk.bx
1.33% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderObject::containingBlock() const
1.26% GtkLauncher [kernel.kallsyms] [k] acpi_pm_read
1.19% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderBox::offsetFromContainer(WebCore::RenderObject*, WebCore::IntPoint const&) const
1.18% GtkLauncher libc-2.13.so [.] __memcpy_ia32
0.98% gtk-gnash ld-2.13.so [.] do_lookup_x
0.88% GtkLauncher libm-2.13.so [.] __lroundf
0.87% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderLayer::calculateRects(WebCore::RenderLayer const*, WebCore::RenderRegion*, WebCore::IntRect const&, WebCore::IntRect&, WebCore::ClipRect&, WebCore::ClipRect&, WebCore::ClipRect&, bool, WebCore::OverlayScrollbarSizeRelevancy) const
0.79% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderBox::topLeftLocationOffset() const
0.78% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::TransformState::move(int, int, WebCore::TransformState::TransformAccumulation)
0.77% gtk-gnash [kernel.kallsyms] [k] copy_user_highpage.isra.27
0.72% GtkLauncher ld-2.13.so [.] do_lookup_x
0.68% GtkLauncher [kernel.kallsyms] [k] get_page_from_freelist
0.67% GtkLauncher libpthread-2.13.so [.] pthread_mutex_lock
0.64% GtkLauncher libgobject-2.0.so.0.3200.3 [.] g_type_check_instance_is_a
0.62% GtkLauncher libfreetype.so.6.8.1 [.] 0xb11c
0.61% GtkLauncher libpixman-1.so.0.26.0 [.] 0x84a07
0.60% GtkLauncher libfreetype.so.6.8.1 [.] TT_RunIns
0.56% GtkLauncher libjpeg.so.8.4.0 [.] ycc_rgb_convert
0.56% GtkLauncher libc-2.13.so [.] __strcmp_ia32
0.55% GtkLauncher libwebkitgtk-3.0.so.0.13.2 [.] WebCore::RenderObject::container(WebCore::RenderBoxModelObject*, bool*) const
0.52% GtkLauncher libc-2.13.so [.] _int_malloc
[…]
Martin Robinson
Is it possible for you to confirm that this is still an issue in the 1.10.x series?
Paul Menzel
I am unable to reproduce it in one try in Debian Sid/unstable with Midori 0.5.11 (0.5.11-ds1-4+b1) and WebKitGTK+ 2.4.11 (2.4.11-3). So I change the status to RESOLVED/FIXED.