You're hitting slowpath named property accesses (JSOP_GETELEM style)
which are going through an Ion IC, but which are not getting optimized
stubs added to handle them.
Tracking down the relevant code with the in-browser might be helpful...
The gecko profiler addon should be able to help here. It'll gather
profiling info continuously, and when you encounter some sluggishness
you can quickly hit a button on the toolbar to present that info, and
then just select the previous second or two to analyze.
Kannan
On 11/3/2013, 10:11 PM, Nicholas Nethercote wrote:
Hi,
Recently my trunk builds have been sluggish at times. It varies a
lot, but some days I have lots of pauses. It seems to happen when I
have lots of bugzilla tabs open, though I'm not certain that's a
factor. I also use Chatzilla, which may be a factor.
A number of the times it's happened I've run |perf top|, which is like
|top| but works at the level of functions rather than processes.
Here's a typical result when a bad pause is occurring:
18.08% perf-2573.map [.] 0x00007f2d41c0cf1d
6.04% libxul.so [.] js::jit::GetElementIC::update(JSContext*,
u
4.92% libxul.so [.] js::Shape::search(js::ExclusiveContext*,
js
4.53% libxul.so [.] js::types::TypeMonitorResult(JSContext*,
JS
3.84% libxul.so [.] js::ShapeTable::search(long, bool)
2.55% libxul.so [.] js::baseops::GetProperty(JSContext*,
JS::Ha
2.26% libc-2.17.so [.] __strstr_sse42
2.21% libxul.so [.] js::baseops::GetPropertyNoGC(JSContext*,
JS
1.46% libxul.so [.] js::jit::GetPcScript(JSContext*,
JSScript**
1.32% libxul.so [.] JSObject::lookupGeneric(JSContext*,
JS::Han
1.27% libxul.so [.] js::jit::IonFrameIterator::operator++()
1.27% libc-2.17.so [.] __strcmp_sse42
1.19% libxul.so [.]
js::types::AutoEnterAnalysis::~AutoEnterAna
1.11% libc-2.17.so [.] __memcpy_ssse3_back
1.09% libc-2.17.so [.] _int_malloc
1.03% libxul.so [.] js::jit::IonFrameIterator::script() const
0.91% libxul.so [.]
js::types::TypeSet::hasType(js::types::Type
0.91% libc-2.17.so [.] __strlen_sse2_pminub
0.84% libxul.so [.] js::jit::OperatorIn(JSContext*,
JS::Handle<
0.68% libxul.so [.]
js::ObjectImpl::nativeLookup(js::ExclusiveC
0.64% libxul.so [.] JSAtom*
js::ToAtom<(js::AllowGC)0>(js::Excl
The percentage indicates how many samples are occurring in each function.
Any suggestions what might be going on here? Some kind of property
access, I'd guess.
Nick
_______________________________________________
dev-tech-js-engine-internals mailing list
dev-tech-js-engine-internals@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
_______________________________________________
dev-tech-js-engine-internals mailing list
dev-tech-js-engine-internals@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals