If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

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

RESOLVED WORKSFORME

Status

()

Core
JavaScript Engine
RESOLVED WORKSFORME
5 years ago
4 years ago

People

(Reporter: bz, Unassigned)

Tracking

({perf, regression})

Firefox Tracking Flags

(Not tracked)

Details

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
Last Resolved: 4 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.