In fact I just recently tested Java 8 GA vs Java 7 (I think 1.7 u25) and I think there were small improvements, curiously especially to span and sloppy phrase queries.
Since we mostly read big byte[] blocks I think gains to ByteBuffer.getXXX won't help us that much. But I'll retest, with 1.7 u60 and report back. Mike McCandless http://blog.mikemccandless.com On Mon, Apr 7, 2014 at 11:59 AM, Uwe Schindler <[email protected]> wrote: > Hi, > > On the Hotspot mailing list was the following post by Cleber Muramoto. It > might be interesting to check MMapDirectory in Java 8! > Mike, do you maybe setup another luceneutil test on Lucene on Beast with JDK > 8 GA? Can we do a comparison between JDK 7u60 and JDK 8 GA? It would be very > interesting, because one reason some people want to have the native mmap > variants because of the additional slowdown caused by the ByteBuffer wrapping. > > Uwe > > === snip === > Hello, I'm curious to know if there has been any low-level optmizations > regarding direct buffers getXXX methods on JDK8 and, if they're planned to be > integrated in JDK7, if applicable. I googled and took a look at the bug > database but I couldn't find anything related. > > I have a microbenchmark that does millions of iterations serializing and > deserializing objects to/from ByteBuffers and I noticed that read performance > on JDK 8 has increased by almost 45% in comparison to earliear JDK 7 releases > in the serial case and more than 200% on the concurrent case! I think that > the concurrent test is perhaps benefiniting from newer > ForkJoinPool/concurrency code, but the difference in the serial case is still > very large! > > Bellow are the VM arguments that I'm using for the test: > > $JAVA -server -XX:+UseParallelGC \ > -XX:+UseLargePages -XX:MaxDirectMemorySize=10G -Xmx1g -XX:MaxInlineSize=256 \ > -XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining -XX:+LogCompilation > > JDK8 seems to generate much more compiling information than the previous > versions, but I wasn't able to find any indicators for such huge performance > difference. > > Here are the test results (collected with the diagnostic flags off, on a HP > G7 48 CPU box). > > Concurrent Reads: > > 503K Reads/s|Writes/s 161K (jdk7U10) > 940K Reads/s|Writes/s 165K (jdk7U40) > 956K Reads/s|Writes/s 159K (jdk7U60 EA) > 1644K Reads/s|Writes/s 172K (jdk8-more than 3x faster than U10!) > > Serial Reads: > > 137K Reads/s|Writes/s 146K > 145K Reads/s|Writes/s 145K > 143K Reads/s|Writes/s 155K > 198K Reads/s|Writes/s 172K > > Upon deserialization the test does a lot of short-lived allocations, but GC > reports show very similar results for every JDK versions used in the test > (about ~500 Young Gen Collections and ~1800ms spent by PS Scavenge). > > Anyway, great work!!! I hope I can migrate to JDK8 as soon as possible. > > Regards > > Cleber > > ----- > Uwe Schindler > H.-H.-Meier-Allee 63, D-28213 Bremen > http://www.thetaphi.de > eMail: [email protected] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
