Closed Bug 795778 Opened 12 years ago Closed 11 years ago

Significant performance regression calling Array.prototype.slice on a NodeList due to handle API stuff

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: bzbarsky, Unassigned)

References

Details

(Keywords: perf, regression)

The patch in bug 750733 significantly (30% or more) regressed the testcase in bug 697343, as far as I can tell.

Still trying to figure out _why_ exactly...
Blocks: 697343
Well, the initial regression was because it broke the DoGetElement overloads.  But that seems to have gotten mostly fixed in bug 776579, and the numbers didn't go back down to where they should be...
And in particular, if I actually compare a current build to one from back in May in a profiler, it looks like various stuff is not getting inlined that used to be, and more time is generally being spent on every method call.  Or something.  It's a bit hard to make sense of the data.  :(
I _think_ this might be due to JSObject::getElementIfPresent not being inlined.  Maybe.  I'm not sure whether the old thing got inlined either...
But I think it did.
We killed all this code in bug 697343.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WORKSFORME
Great! Eric and I also walked through the optimized bindings instruction-by-instruction at the GC work week and found that everything is working as expected.
You need to log in before you can comment on or make changes to this bug.