- 
    Sub-task 
- 
    Resolution: Fixed
- 
     P4 P4
- 
    11, 12, 13
- 
        b03
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build | 
|---|---|---|---|---|---|---|
| JDK-8218980 | 12.0.2 | Aleksey Shipilev | P4 | Resolved | Fixed | b01 | 
| JDK-8226577 | 11.0.5-oracle | Aleksey Shipilev | P4 | Resolved | Fixed | b02 | 
| JDK-8218982 | 11.0.3 | Aleksey Shipilev | P4 | Resolved | Fixed | master | 
                    This is the simple subtask from JDK-8151751. Class.name is already cached on Java side, so field is available for caching the name. We can use that field when creating the stack trace elements.
Candidate patch gives a very nice result:
Benchmark (depth) Mode Cnt Score Error Units
# 8u192
StackTraceBench.test 1 avgt 15 10.851 ± 0.075 us/op
StackTraceBench.test 10 avgt 15 15.325 ± 0.089 us/op
StackTraceBench.test 100 avgt 15 59.717 ± 0.449 us/op
StackTraceBench.test 1000 avgt 15 529.020 ± 3.654 us/op
# jdk/jdk, baseline
StackTraceBench.test 1 avgt 15 23.835 ± 0.188 us/op
StackTraceBench.test 10 avgt 15 33.204 ± 0.191 us/op
StackTraceBench.test 100 avgt 15 125.195 ± 0.694 us/op
StackTraceBench.test 1000 avgt 15 1051.047 ± 9.779 us/op
# jdk/jdk, patched
StackTraceBench.test 1 avgt 15 14.450 ± 0.136 us/op
StackTraceBench.test 10 avgt 15 20.182 ± 0.088 us/op
StackTraceBench.test 100 avgt 15 77.107 ± 0.632 us/op
StackTraceBench.test 1000 avgt 15 647.128 ± 6.159 us/op
            
Candidate patch gives a very nice result:
Benchmark (depth) Mode Cnt Score Error Units
# 8u192
StackTraceBench.test 1 avgt 15 10.851 ± 0.075 us/op
StackTraceBench.test 10 avgt 15 15.325 ± 0.089 us/op
StackTraceBench.test 100 avgt 15 59.717 ± 0.449 us/op
StackTraceBench.test 1000 avgt 15 529.020 ± 3.654 us/op
# jdk/jdk, baseline
StackTraceBench.test 1 avgt 15 23.835 ± 0.188 us/op
StackTraceBench.test 10 avgt 15 33.204 ± 0.191 us/op
StackTraceBench.test 100 avgt 15 125.195 ± 0.694 us/op
StackTraceBench.test 1000 avgt 15 1051.047 ± 9.779 us/op
# jdk/jdk, patched
StackTraceBench.test 1 avgt 15 14.450 ± 0.136 us/op
StackTraceBench.test 10 avgt 15 20.182 ± 0.088 us/op
StackTraceBench.test 100 avgt 15 77.107 ± 0.632 us/op
StackTraceBench.test 1000 avgt 15 647.128 ± 6.159 us/op
- backported by
- 
                    JDK-8218980 StackTraceElement::fill_in can use cached Class.name -           
- Resolved
 
-         
- 
                    JDK-8218982 StackTraceElement::fill_in can use cached Class.name -           
- Resolved
 
-         
- 
                    JDK-8226577 StackTraceElement::fill_in can use cached Class.name -           
- Resolved
 
-