-
Bug
-
Resolution: Fixed
-
P3
-
None
-
None
-
b43
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8085567 | emb-9 | Hannes Wallnoefer | P3 | Resolved | Fixed | team |
JDK-8068132 | 8u45 | Hannes Wallnoefer | P3 | Resolved | Fixed | b02 |
JDK-8067244 | 8u40 | Hannes Wallnoefer | P3 | Resolved | Fixed | b19 |
JDK-8070543 | emb-8u47 | Hannes Wallnoefer | P3 | Resolved | Fixed | team |
A performance regression with the dust.js templating library was reported on nashorn-dev:
http://mail.openjdk.java.net/pipermail/nashorn-dev/2014-November/003860.html
While the original report focuses on 8u05 vs 8u25, there is even a bigger regression to 8u40. While the reasons for the 8u25 regression are not very clear, the 8u40 regression is caused by the switch to dual fields representation. The problem here is that the '$len' and '$idx' properties switch between int and Object type a lot, and since this is a get/setAttr access the property maps are not cached in the callsite.
While it would not solve the deeper propblem with indexed access callsites, it seems we solve this particular case (and probably improve a lot of other code) by treating index nodes with string constant ids like regular property accesses.
http://mail.openjdk.java.net/pipermail/nashorn-dev/2014-November/003860.html
While the original report focuses on 8u05 vs 8u25, there is even a bigger regression to 8u40. While the reasons for the 8u25 regression are not very clear, the 8u40 regression is caused by the switch to dual fields representation. The problem here is that the '$len' and '$idx' properties switch between int and Object type a lot, and since this is a get/setAttr access the property maps are not cached in the callsite.
While it would not solve the deeper propblem with indexed access callsites, it seems we solve this particular case (and probably improve a lot of other code) by treating index nodes with string constant ids like regular property accesses.
- backported by
-
JDK-8067244 dust.js performance regression caused by primitive field conversion
-
- Resolved
-
-
JDK-8068132 dust.js performance regression caused by primitive field conversion
-
- Resolved
-
-
JDK-8070543 dust.js performance regression caused by primitive field conversion
-
- Resolved
-
-
JDK-8085567 dust.js performance regression caused by primitive field conversion
-
- Resolved
-