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

Reply via email to