Io in questo momento sono in vacanza senza pc, ma da intellij basta fare
click col tasto destro per vedere il Bytecode (o javap da cmdline).
100ms. di ritardo per una Lambda sono un'enormita' pero', qualsiasi sia la
causa credo sia one-off perche' altrimenti programmi con centinaia di
lambda
Ciao Alessio,
vado a memoria, in Java 8 le lambda sono state implementate con una primitiva
JVM, forse invokedynamic, quindi la classe è definita a runtime.
La soluzione con la classe esterna è quella "compatibile", utilizzata ad
esempio da Retrolambda.
Vasco
Beh no dai lo ho testato più volte, e anche con jvm diverse, come ho
riportato. Confermo che si comporta così ogni volta.
Altre idee?
On Fri, 16 Aug 2019, 17:36 Andrea Ligios andrealig...@gmail.com
[it-torino-java-jug], wrote:
>
>
> A me fa il contrario, ci mette di più il primo snippet, e
Non credo che 10 volte siano abbastanza per far scattare Hotspot, quindi
credo sia ancora a livello compilatore C1.
Visti i tempi (100MS di differenza) mi pare più' facile che in sia un
random GC. Se vuoi andare a fondo io inizierei a controllare i log CG.
Uberto
On Fri, 16 Aug 2019 at 16:49,
A me fa il contrario, ci mette di più il primo snippet, e solo la prima
volta:
[image: immagine.png]
Su IDEONE, invece, sono uguali da subito: https://ideone.com/MRW3Mo
Suppongo sia solo la JVM che a causa del bootstrap dà risultati
incosistenti,
se li testi uno per volta partendo a JVM spenta
Non capisco cosa sta succedendo! Allora, io le lambda le uso senza farmi
tante domande, ma oggi devo farmene una. Guardate il codice (scusate, e'
pecoreccio), provatelo anche voi... come mai la seconda esecuzione dura di
piu'? Cosa sto sbagliando?
In pratica eseguendo il mio test la forma: