Open Bug 1349148 Opened 7 years ago Updated 1 year ago

Improve performance of megamorphic stubs

Categories

(Core :: JavaScript Engine: JIT, enhancement, P3)

enhancement

Tracking

()

Performance Impact low

People

(Reporter: jandem, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: perf)

Some random ideas to consider/investigate:

* We could add a 1-entry cache to ShapeTable (both for hits and misses).

* We create a ShapeTable when there are more than 11 entries (ShapeTable::MIN_ENTRIES) but we should measure what the best value is for this nowadays. Since bug 1314569 we can purge ShapeTables on GC so we could be a bit more eager.

* Maybe when the number of entries is small, it would be faster for ShapeTable to store an array of {id, Shape*}.

* We could add a global cache/HashTable to avoid looking at each object on the proto chain.
* We should also check how common ShapeTable hash collisions are.
Whiteboard: [qf]
Whiteboard: [qf] → [qf:investigate]
Keywords: perf
Moving to p3 because no activity for at least 1 year(s).
See https://github.com/mozilla/bug-handling/blob/master/policy/triage-bugzilla.md#how-do-you-triage for more information
Priority: P2 → P3
I can do some of these measurements, especially since I have the instrumentation already setup from bug 1384808.
Assignee: nobody → dpalmeiro
Flags: needinfo?(dpalmeiro)
Flags: needinfo?(dpalmeiro)
Assignee: dpalmeiro → nobody
Performance Impact: --- → ?
Whiteboard: [qf:investigate]
Performance Impact: ? → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.