Bug 20814
| Summary: | V8 tests spend fair amount of time in property lookup cache misses | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Maciej Stachowiak <mjs> |
| Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED WONTFIX | ||
| Severity: | Normal | CC: | barraclough, webmaster |
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | Mac | ||
| OS: | OS X 10.5 | ||
| Bug Depends on: | |||
| Bug Blocks: | 20813 | ||
Maciej Stachowiak
A number of the V8 tests spend significant time in cti_op_get_by_id_generic, indicating misses of the polymorphic inline cache. Some of the causes include:
- Math object properties being accessed in a pattern that makes the structure ID change (since the function properties are created on demand). We might want to pre-populate all at once, perhaps, or at least prebuild the structure ID and leave "placeholder" values of some kind.
- Legitimate polymorphism, which we could handle either by making the generic case faster, or by making the polymorphic inline cache truly polymorphic up to some limit.
- Unknown causes perhaps due to bugs in our cache logic.
This most heavily affects DeltaBlue (to the tune of 23.2%) but Richards (6.4%), Raytrace (3.2%), and Crypto(1.9%) are also somewhat affected. See bug 20813 for profiles.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Gavin Barraclough
*** Bug 20813 has been marked as a duplicate of this bug. ***
Gavin Barraclough
Our caching has improved a lot in the last 4 years, I don't think this bug is still tracking useful work (which is not to say our caching in v8 is perfect yet!).