Hi,
I compared 8u65 and 9b116 performance on a simple
Throwable.getStackTrace() JMH benchmark that I have, using a variety of
call stack depths. Performance looks very similar between the two; if
anything, 9b116 has a slight edge for larger stack depths.
So I don't think the difference is due to the walking of the stack
itself, at least based on what I measured.
HTH,
-Brent
On 5/10/16 9:49 AM, Ralph Goers wrote:
I just ran one of the Log4j performance tests that specifically captures
location information. To run the test I do
java -jar log4j-perf/target/benchmarks.jar
".*AsyncAppenderLog4j2LocationBenchmark.*" -f 1 -wi 10 -i 20 -t 4 -si true
And the results are:
java version "1.7.0_80
Benchmark Mode
Samples Score Error Units
o.a.l.l.p.j.AsyncAppenderLog4j2LocationBenchmark.throughputSimple thrpt
20 124819.285 ± 3003.918 ops/s
java version "1.8.0_65"
Benchmark Mode
Samples Score Error Units
o.a.l.l.p.j.AsyncAppenderLog4j2LocationBenchmark.throughputSimple thrpt
20 123209.746 ± 3064.672 ops/s
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+116)
Benchmark Mode
Samples Score Error Units
o.a.l.l.p.j.AsyncAppenderLog4j2LocationBenchmark.throughputSimple thrpt
20 96090.261 ± 4565.763 ops/s
This tells me that Java 9 is about 23% slower than previous versions in walking
the stack trace elements.
Ralph