WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
53649
move-left-right.html and extend-selection-*.html are slow
https://bugs.webkit.org/show_bug.cgi?id=53649
Summary
move-left-right.html and extend-selection-*.html are slow
Ryosuke Niwa
Reported
2011-02-02 17:16:51 PST
According to the
bug 27995
, the two slowest tests are from editing/selection. 9.58 secs: editing/selection/move-left-right.html 9.37 secs: fast/js/array-filter.html 7.71 secs: editing/selection/extend-selection.html We should improve the performance.
Attachments
extend-selection* profile
(5.68 MB, application/octet-stream)
2011-02-02 17:19 PST
,
Ryosuke Niwa
no flags
Details
move-left-right profile
(5.82 MB, application/octet-stream)
2011-02-02 17:32 PST
,
Ryosuke Niwa
no flags
Details
extend-selection* profile
(
deleted
)
2011-03-11 02:08 PST
,
Ryosuke Niwa
no flags
Details
move-left-right profile
(
deleted
)
2011-03-11 02:08 PST
,
Ryosuke Niwa
no flags
Details
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Ryosuke Niwa
Comment 1
2011-02-02 17:19:25 PST
Created
attachment 81009
[details]
extend-selection* profile It seems like the most time is spent in ICU and isContentEditable.
Ryosuke Niwa
Comment 2
2011-02-02 17:32:35 PST
Created
attachment 81011
[details]
move-left-right profile
Ryosuke Niwa
Comment 3
2011-02-02 17:33:09 PST
It seems like ICU and isContentEditable is hot again: 5.6% 5.6% libicucore.A.dylib icu::RuleBasedBreakIterator::handleNext(icu::RBBIStateTable const*) 0.0% 5.6% libicucore.A.dylib icu::RuleBasedBreakIterator::next() 0.0% 4.4% libicucore.A.dylib icu::RuleBasedBreakIterator::previous() 0.0% 3.1% WebCore WebCore::RenderText::previousOffset(int) const 0.0% 1.1% WebCore WebCore::Position::inRenderedText() const 0.0% 1.1% WebCore WebCore::Position::isCandidate() const 0.0% 1.1% WebCore WebCore::PositionIterator::decrement() 0.0% 1.1% WebCore WebCore::Position::upstream(WebCore::EditingBoundaryCrossingRule) const 0.0% 0.9% WebCore WebCore::Position::previous(WebCore::PositionMoveType) const 0.0% 0.9% WebCore WebCore::previousVisuallyDistinctCandidate(WebCore::Position const&) 0.0% 1.3% libicucore.A.dylib icu::RuleBasedBreakIterator::following(int) 0.0% 1.3% WebCore WebCore::RenderText::nextOffset(int) const 0.0% 0.9% WebCore WebCore::Position::inRenderedText() const 0.0% 0.4% WebCore WebCore::PositionIterator::increment() 0.0% 0.1% WebCore WebCore::Position::next(WebCore::PositionMoveType) const 0.0% 1.0% libicucore.A.dylib icu::RuleBasedBreakIterator::following(int) 0.0% 0.1% WebCore WebCore::RenderText::nextOffset(int) const 0.0% 0.1% CoreFoundation CFStringTokenizerAdvanceToNextToken 5.4% 5.4% libobjc.A.dylib objc_msgSend 0.0% 1.5% WebKit WebEditorClient::isEditable() 0.0% 1.5% WebCore WebCore::Editor::clientIsEditable() const 0.0% 1.5% WebCore WebCore::Frame::isContentEditable() const 0.0% 1.5% WebCore WebCore::HTMLElement::isContentEditable() const
Ryosuke Niwa
Comment 4
2011-02-03 02:07:24 PST
It seems like we need to make Node::isContentEditable and Element::isContentEditable non-virtual inline function. They are called way too frequently to be virtual.
Ryosuke Niwa
Comment 5
2011-03-08 20:13:11 PST
Now that the
bug 54050
has been fixed, I'll resample.
Ryosuke Niwa
Comment 6
2011-03-11 02:08:15 PST
Created
attachment 85450
[details]
extend-selection* profile
Ryosuke Niwa
Comment 7
2011-03-11 02:08:56 PST
Created
attachment 85451
[details]
move-left-right profile
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug