WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED INVALID
Bug 4076
[INTERPRETER] Loading www.fed-soc.org causes hang (eventually finishes)
https://bugs.webkit.org/show_bug.cgi?id=4076
Summary
[INTERPRETER] Loading www.fed-soc.org causes hang (eventually finishes)
Jon
Reported
2005-07-19 18:58:00 PDT
When attempting to load fed-soc.org with TOT WebKit based Safari, Safari beachballs while loading the page. Content is rendered, but the progress bar and spinner never complete and Safari uses 100% of the CPU (500 MHz iBook). Only recourse is to force quit Safari.
Attachments
Sample during spin, 9/2 ToT
(301.93 KB, text/plain)
2005-09-03 17:45 PDT
,
Stuart Morgan
no flags
Details
Reduction
(666 bytes, text/html)
2006-03-13 07:20 PST
,
Ingo Chao
no flags
Details
Gzipped webarchive of page on 2007/01/06
(486.41 KB, application/x-gzip)
2007-01-06 11:44 PST
,
David Kilzer (:ddkilzer)
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Jon
Comment 1
2005-07-19 19:02:54 PDT
Tested in Safari 412.2, same result.
David Storey
Comment 2
2005-07-21 03:53:16 PDT
Similar results in V312, but it eventually recovers from spinning pizza, so does not crash (1.25 alu powerbook). Hang lasts about 20 seconds.
Stuart Morgan
Comment 3
2005-09-03 17:45:28 PDT
Created
attachment 3736
[details]
Sample during spin, 9/2 ToT It eventually completes with 9/2 ToT, but does spin for a while. Sample attached. It's slow in Camino as well, but not nearly this slow.
Michael J. Cohen
Comment 4
2006-01-10 09:06:35 PST
reproduceable, however, the spinner completes and the site is usable for me.
Sören Kuklau
Comment 5
2006-02-02 02:22:30 PST
The most likely cause, AFAICT is the huge (1050x1000) background image,
http://www.fed-soc.org/images/madisonbackground.gif
. I can reproduce this both on 2.0.3 and on
r12479
. The loading *does* complete, even on my G3/700 iBook. It just takes a lot of time, and Safari is hanging/unresponsive (including beachball) during it.
Joost de Valk (AlthA)
Comment 6
2006-02-13 15:55:04 PST
Reassigning to webkit-unassigned, to make sure more people see this.
Joost de Valk (AlthA)
Comment 7
2006-02-15 14:36:31 PST
Confirmed.
David Kilzer (:ddkilzer)
Comment 8
2006-02-26 07:29:19 PST
Moving to "New Bugs" from "WebSite" since the latter is used for webkit.opendarwin.org. The background image mentioned in
Comment #5
is only 9 KB (although the authors of this site really need to learn how to use CSS). This issue needs to be reduced to find the actual cause, so adding NeedsReduction keyword. The source appears to have Dreamweaver JavaScript functions, so beware!
David Kilzer (:ddkilzer)
Comment 9
2006-02-26 07:58:37 PST
A quick Shark Time Profile of the Safari while the page is beach-balling shows that most of the time is spent in KJS. Therefore, moving this bug to the JavaScript component. It still needs a reduction, though.
David Kilzer (:ddkilzer)
Comment 10
2006-02-26 09:42:44 PST
I think ggaren would be interested in this bug since it deals with JavaScript and performance issues. Adding him to CC list.
Geoffrey Garen
Comment 11
2006-02-27 09:39:22 PST
This looks like the oft-reported bug that JavaScript execution freezes the browser. We have plans to fix this with "tree code."
Geoffrey Garen
Comment 12
2006-02-27 09:47:16 PST
The other issue here is that a for loop is getting a value from a DOM node, and each get causes a re-layout. In tree view, you can see that "KJS::DOMNode::getValueProperty(KJS::ExecState*, int) const" calls "DOM::DocumentImpl::updateLayoutIgnorePendingStylesheets()." In heavy view, you can see that the heaviest function calls are all layout calls: 327 khtml::RenderObject::updateWidgetPositions() 26 DOM::ElementImpl::recalcStyle(DOM::NodeImpl::StyleChange) 26 khtml::RenderBlock::lowestPosition(bool, bool) const 25 khtml::RenderLayer::updateLayerPositions(bool, bool) 22 khtml::RenderBlock::rightmostPosition(bool, bool) const 20 khtml::RenderLayer::computeRepaintRects() 19 khtml::RenderBox::computeAbsoluteRepaintRect(QRect&, bool) 18 khtml::RenderFlow::lowestPosition(bool, bool) const 15 khtml::RenderBlock::layoutBlock(bool) 15 khtml::RenderFlow::rightmostPosition(bool, bool) const 13 khtml::RenderBlock::getAbsoluteRepaintRectIncludingFloats(QRect&, QRect&) 13 khtml::RenderFlow::getAbsoluteRepaintRect() 12 khtml::RenderBox::getAbsoluteRepaintRect() 12 khtml::RenderObject::isFloatingOrPositioned() const I'd love to see a reduction that showed what kind of JavaScript get caused this re-layout. Looks like it's something in one of the inline <script> tags. One approach would be to set a breakpoint on DocumentImpl::updateLayoutIgnorePendingStylesheets and get information from the calling stack frame.
Ingo Chao
Comment 13
2006-03-13 07:20:41 PST
Created
attachment 7047
[details]
Reduction Reduction. These scripts for a complex 4-level flyout menu consume most of the time. Rendering of the page (approx. time in seconds, iMac 1.9GHzG5 1.5GB): Fx1.5.0.1 : IE5.2Mac : Opera8.51 : Webkit
r13265
4 : 5 : 9 : 28 I used base to reproduce this problem. When I download the scripts, remove the base and open the page locally, there is no problem with that page. Hope this helps.
David Kilzer (:ddkilzer)
Comment 14
2007-01-06 11:44:57 PST
Created
attachment 12260
[details]
Gzipped webarchive of page on 2007/01/06
David Kilzer (:ddkilzer)
Comment 15
2007-01-06 11:51:08 PST
As of WebKit
r18639
, the menu on the fed-soc.org web site is misplaced. See
Bug 12141
for details.
Jon
Comment 16
2009-08-22 11:25:56 PDT
Although the website has been update to be much more modern, the webarchive David attached still causes a beachball, even with Safari 4.0.3 on Leopard/PPC with a Quad G5. I'm just going through my old bugs and wanted to bump this and see whether it's still something to be fixed.
Gavin Barraclough
Comment 17
2011-06-14 16:29:37 PDT
The attached webarchive opens nice & quick for me on Safari 5.0. Based on the bug# I guess this bug is archaic, but please reopen if the issue still repros for you.
Jon
Comment 18
2011-06-14 17:11:41 PDT
Not that quick for me, even on an i7 iMac and it's still slow enough on my Quad G5 to cause the beach ball for a few seconds before loading completes. Even my iMac takes a few seconds to open it, though not enough to cause the beach ball. I don't know if even the lowest Intel Mac would produce the beach ball but like I said, my Quad G5 certainly does.
Jon
Comment 19
2011-06-14 17:14:32 PDT
Takes my i7 iMac approximately 3 - 4 seconds to open the archive, with the Quad G5 taking 10 seconds. JS issue I'd say, since that's the biggest difference between PPC and Intel WebKit, AFAIK.
Gavin Barraclough
Comment 20
2011-06-14 17:21:45 PDT
:-( 10s is certainly an improvement from 28s, but I guess I can't call this fixed, so reopening. Retitling to reflect that this appears to be an interpreter-related issue.
Jon
Comment 21
2011-06-14 17:48:35 PDT
My brief sampling gives the following as the hottest part: 0.0% 74.4% JavaScriptCore JSC::Interpreter::privateExecute(JSC::Interpreter::ExecutionFlag, JSC::RegisterFile*, JSC::ExecState*, JSC::JSValue*) 0.0% 32.3% WebCore WebCore::jsElementOffsetHeight(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&) 0.0% 26.3% WebCore WebCore::jsElementOffsetWidth(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&) 0.0% 8.2% WebCore WebCore::jsElementOffsetLeft(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&) 0.0% 6.4% WebCore WebCore::jsElementOffsetTop(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&) 0.0% 0.8% WebCore WebCore::JSCSSStyleDeclaration::put(JSC::ExecState*, JSC::Identifier const&, JSC::JSValue, JSC::PutPropertySlot&) 0.2% 0.2% JavaScriptCore JSC::Interpreter::privateExecute(JSC::Interpreter::ExecutionFlag, JSC::RegisterFile*, JSC::ExecState*, JSC::JSValue*) 0.0% 0.1% WebCore WebCore::jsElementStyle(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&) 0.0% 0.1% JavaScriptCore JSC::jsTypeStringForValue(JSC::ExecState*, JSC::JSValue) 0.0% 0.0% JavaScriptCore JSC::JSValue::get(JSC::ExecState*, JSC::Identifier const&, JSC::PropertySlot&) const 0.0% 0.0% JavaScriptCore WTF::tryFastRealloc(void*, unsigned long)
Jon
Comment 22
2011-06-14 18:16:20 PDT
Menu is still misplaced as well, as noted by David in #15.
Geoffrey Garen
Comment 23
2011-06-14 18:53:52 PDT
0.0% 32.3% WebCore WebCore::jsElementOffsetHeight(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&) 0.0% 26.3% WebCore WebCore::jsElementOffsetWidth(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&) 0.0% 8.2% WebCore WebCore::jsElementOffsetLeft(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&) 0.0% 6.4% WebCore WebCore::jsElementOffsetTop(JSC::ExecState*, JSC::JSValue, JSC::Identifier const&) 0.0% 0.8% WebCore WebCore::JSCSSStyleDeclaration::put(JSC::ExecState*, JSC::Identifier const&, JSC::JSValue, JSC::PutPropertySlot&) Seems that my 2006 comment identifying possibly n^2 layout behavior may still be apt.
Gavin Barraclough
Comment 24
2012-09-25 13:51:21 PDT
This bug was interpreter only, the classic interpreter has now been removed from the tree.
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