[Webkit-unassigned] [Bug 39958] New: [Qt] TextBreakIterator QT performance
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon May 31 09:16:57 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=39958
Summary: [Qt] TextBreakIterator QT performance
Product: WebKit
Version: 528+ (Nightly build)
Platform: S60 Hardware
OS/Version: S60 3rd edition
Status: UNCONFIRMED
Severity: Critical
Priority: P1
Component: WebKit Qt
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: david.leong at nokia.com
CC: laszlo.1.gombos at nokia.com
Clicking on a large section of text (20,000) characters stored in a div takes several minutes to process a mouse down event on a S60 phone. The app is totally non-responsive and crashes most of the time when this happens.
After some investigations, we found the problem to be located in WebCore' htmlediting.cpp. In the function Position previousCandidate(const Position& position ) the while loop keeps looking for a text position and continually re-initializes QTextBoundaryFinder further down the stack. QTextBoundaryFinder initializes the text buffer to harfbuzz to calculate some line/word break data.
Initializing Harfbuzz is extremely expensive it seems. While looking for the text position in this use case it is re-initializing QTextBoundaryFinder with the same text data in the render text node.
An optimization will be to cache the text ptr and length to not recreate QTextBoundaryFinder when the same data is presented to harfbuzz.
--
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