Newsgroup: it.comp.lang.visual-basic
Titolo: performance di Visual Basic.NET

Mi pare quindi di aver capito che il nuovo visual basic .net non produce
vero codice eseguibile, ma codice interpretato? quindi performance molto
basse...

 basse...
tutti i compilatori .NET (quindi anche VC++.NET se produci codice "managed")
compilano realizzando eseguibili che contengono codice "IL" (Intermediate
Language), ossia un bytecode indipendente dalla piattaforma. Quando il
codice viene eseguito, il "motore" .NET (il cosiddetto "CLR") compila
definitivamente ed esegue il codice compilato nativamente. Questo permette
di apportare delle ottimizzazioni specifiche per la piattaforma di
destinazione (es: CPU), altrimenti impissobili da ottenere mediante
ottimizzazioni compile-time. In ogni caso, puoi ottenere una compilazione
nativa utilizzando il tool NGEN.EXE, ma devi usarlo sul PC che eseguirą il
tuo applicativo.
Per la mia esperienza personale, VB ha "guadagnato" tantissimo nella sua
versione .NET rispetto alle precedenti.
A.
UGIdotNET - 
http://www.ugidotnet.org


L'Oriundo

 E quale era la tua esperienza in OLD VB ?
quella di un libero professionista che lo usa dalla versione 3 (1994) e che
ha avuto la fortuna di poterlo/doverlo utilizzare per progetti molto
interessanti. E che, per inciso, può confrontarlo con le altre tecnologie
che ha potuto utilizzare (C/C++, Delphi e Powerbuilder)


 Beh aspetiamo almeno la versione .GOD
per l'amor del cielo. poi hellboy che fa ?

 definitivamente ed esegue il codice compilato nativamente. Questo permette
avevo letta la recensione su PC Magazine, ma non veniva detto nulla sulla
compilazione.
mi hai rassicurato... temevo scarse performance.

Nel lontano 1994 ho realizzato (in VC++) un client Internet per Windows.
Faceva tutta una serie di cosine, tranne navigare: FTP, POP3, SMTP, NNTP,
PING, TALK, ed altre piccolezze.
Alcune funzionalità prevedevano un grosso lavoro in locale. Ad esempio, per
mandare i file binari attraverso alcuni protocolli occorre effettuarne una
conversione in ASCII secondo determinati algoritmi.
Venendo al dunque: il compilatore VC++ che avevo (e non ricordo cosa fosse),
aveva l'opzione "Ottimizza per PC locale". Lo stesso identico applicativo,
compilato sul PC 'A' o sul PC 'B', aveva performance nettamente più basse se
fatto girare sul PC dove non era stato compilato.
Ma MOLTO più basse. Evidentemente il compilatore era in grado di individuare
delle sequenze di operazioni che erano più adeguate a CPU, Ram, Tempi di
accesso a disco, scheda video, ecc..., per cui si ottenevano prestazioni
eccezionali compilando su ogni PC la propria copia dell'applicativo.
Non ho effettuato nessun test comparativo fra VB6 e VB.Net, ma prima di dire
che un applicativo compilato Just In Time sia più lento di uno compilato
precedentemente occorre valutare caso per caso.
Ovviamente, un applicativo enorme, in cui ogni procedura viene richiamata
una sola volta, e poi l'applicativo termina, risentirà molto del tempo
iniziale di compilazione.
Un applicativo 'piccolo', in cui il tempo di elaborazione è dato
principalmente dall'esecuzione di numerosi cicli ripetitivi, potrebbe anche
essere molto più veloce in .Net che in EXE normale.
Ciao
Alberto