[Webkit-unassigned] [Bug 74199] New: [Qt] Performance issues on Windows with dragging in Javascript InfoVis Toolkit

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Dec 9 12:18:59 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=74199

           Summary: [Qt] Performance issues on Windows with dragging in
                    Javascript InfoVis Toolkit
           Product: WebKit
           Version: 420+
          Platform: PC
        OS/Version: Windows 7
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P3
         Component: WebKit Qt
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: andre.l.caron at gmail.com


Running the Javascript InfoVis Toolkit[1] force directed graph demonstration project[2], QtWebKit produces weird lagging on Windows.  This lagging is not experienced on similar hardware running Ubuntu Linux and Mac OSX operating systems running the same Qt version.

Dragging in random directions and speed, there is consistent lagging effect.  If you drag the mouse at a consistent pace at about the right speed, you can move the mouse indefinitely without the dragged object being re-drawn; after dragging stops (e.g. mouse stops moving and/or mouse button is released), the dragged object's position is updated instantly.

Caveat: I'm using QtWebKit as shipped with Qt 4.7.4 and I'm not exactly sure what WebKit version number this is supposed to correspond to.

[1]: http://thejit.org/demos/
[2]: http://thejit.org/static/v20/Jit/Examples/ForceDirected/example1.html

h2. Experimental setups

h3. Windows

Tested on two desktops with the following configurations.

h4. System 1

# OS: Windows 7, 64-bit
# CPU: Core2Quad at 2.83Ghz
# Memory: 8Gb RAM
# GPU: ATI Radeon HD 4600 Series
# Compiler: Visual Studio 2008 Professional
# Qt: 4.7.4
## From source, 32-bit
## From source, 64-bit
## Pre-built 32-bit packages

Compared QtTestBrowser and to all of the following:

# Firefox 7.0
# Opera 11.60
# Chrome 15.0.874.121 m
# Safari 5.1.2

h4. System 2

# OS: Windows 7, 64-bit
# CPU: Xeon E31245 3.3Ghz
# Memory: 16Gb RAM
# GPU: nVidia Quadro 2000
# Qt: 4.7.4
## From source, 64-bit
## Pre-built 32-bit packages

Tested only QtTestBrowser.

h3. Linux

h4. System 3

Tested on a desktop with the following configuration:

# OS: Ubuntu 11.10 x86_64
# GCC 4.6.1
# Qt 4.7.4
## Pre-built 64-bit packages

Compared QtTestBrowser to all of the following:

# Chromium 14.0.835.202
# Firefox 8.0
# Opera 11.60

h3. Mac OSX

Testes using a Mac Mini with the following settings:

# CPU: Core2Duo at 2.66Ghz
# Memory: 8Gb RAM
# GPU: nVidia 320M
# Compiler: Apple GCC 4.2.1
# Qt 4.7.4
## Pre-built 64-bit packages

Compared QtTestBrowser to all of the following:

# OSX 10.6.8
# Safari 5.1.2
# Firefox 5.0.1, 6.0 and 8.0.1


h2. Discussion

On both Windows setups, the lagging occurs only when running the QtTestBrowser.  Running any web browser, including Safari, no lagging is observed.  On Opera, the object is a bit behind on the mouse cursor position but the animation is still smooth.  If careful attention is payed, similar catching up of the object on the mouse cursor on all browsers, but this is barely noticeable, especially in Chrome.

On Linux and Mac OSX systems, no lagging is experienced, even when running the QtTestBrowser.

Given the wide variety of system configurations and the fact that all of them use the same Qt version, I'm pretty confident all the following hold:

# Windows is not the cause of the problem: all popular web browsers, including those based on WebKit do not produce the lagging;
# WebKit is not the bottleneck: other configurations based on WebKit on same OS and hardware does not produce the laggging;
# Javascript is not the bottleneck: I've heard V8 is faster, but Safari uses JavaScriptCore and does not produce the lagging;
# hardware is not the cause of the problem: the machine is sufficiently powerful and the same version of QtTestBrowser does not produce lagging on non-Windows systems with similar hardware.

It really seems that the only combination that produces the problem is QtWebKit on Windows.

The only explanation I can think of is that mouse move (drag) events are compressed somewhere in the event loop and that they are not forwarded to the rendering engine if the mouse is still moving.  I'm attempting to run the Visual Studio profiling tools to see if I can spot any problems with that.

h2. Steps to reproduce the bug

# Start the QtTestBrowser
# Load the attached web page ({{demo.html}} file in {{demo.zip}} attachment)
# Using the mouse, drag any of the nodes and observe lagging

Dragging in random directions and speed, there is consistent lagging effect.  If you drag the mouse at a consistent pace at about the right speed, you can move the mouse indefinitely without the dragged object being re-drawn; after dragging stops (e.g. mouse stops moving and/or mouse button is released), the dragged object's position is updated instantly.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list