Quando riavvio il PC.. ogni prima volta che lancio il programma il tempo è tutte le volte doppio delle successive.

Interessante questo discorso della JIT... ho letto un pò in giro ma mi sfugge qualcosa.

Se ho ben capito JIT non interpreta nunc et semper il codice come VB6.0 e non compila il codice una tantum come un compilatore C++... è un pò una cosa intermendia: interpreta ma con la creazione di una "cache" di codice "già letto" per cui dopo un rallentamento iniziale poi l' esecuzione si velocizza.

Inoltre JIT lavora solo quando una istruzione viene eseguita, per cui una istruzione mai eseguita non viene mai interpretata.

Ok, ciò premesso capisco che in un programma basato su JIT la prima volta che viene eseguita una routine l' esecuzione sia più lenta, per velocizzarsi alla successiva esecuzione delle stesse istruzioni.

Ma se ciò fosse vero, dato che la routine che legge le diverse centinaia di files è sempre la stessa, la lettura dovrebbe essere lenta SOLO ALLA LETTURA DEL PRIMO FILE, per velocizzarsi dalla seconda alla ultima.

Invece TUTTA LA PRIMA SERIE DI LETTURE E' LENTA, per velocizzarsi enormemente dalla seconda in poi, sia che chiuda il programma o no (evidentemente la cache non si azzera chiudendo il programma).

E questa non la capisco.