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
|