Sto sviluppando un'applicazione Java 7u80 per l'elaborazione delle immagini utilizzando le librerie C++ tramite JNI.Prestazioni Java 8 VS. Java 7
Come ero disposto a execute streams in parallel con Java 8u60, ho appena passato a JDK 8 e rilanciato tutti i miei test di unità.
Java 8u60 Overall duration: **35'408 [ms]**
Java 7u80 Overall duration: **29'581 [ms]**
Java 7 è nel mio caso il 17% più veloce di Java 8 (stesso codice, livello di codice risp. 7 e 8).
- Mi chiedevo se tale risultato potrebbe essere specifico per la mia applicazione o se altri hanno già notato un downgrade delle prestazioni in movimento da Java 7 a 8?
- C'è qualche ottimizzazione da fare nel codice per ottenere il meglio da Java 8?
Se nulla può essere fatto, avrei allora piuttosto implementare il codice multithreading con Java 7 anziché 8, per mantenere il guadagno di prestazioni ho già con Java 7.
Uso flussi paralleli sarà più lento se non usato correttamente. Supponendo che i tuoi test unitari non siano in esecuzione [jmh] (http://openjdk.java.net/projects/code-tools/jmh/) puoi ignorare completamente i numeri. –
@BoristheSpider Credo che l'OP non abbia ancora utilizzato lo streaming, ha appena fatto il passaggio alla versione JDK e ha immediatamente notato il cambiamento nella durata complessiva. –
@ Jean-FrançoisSavard in tal caso si applica solo la seconda parte del mio commento. –