Newsgroup: it.comp.lang.visual-basic
Titolo: [VB.NET] Larghezza dei tipi di dati

Salve a tutti,
Leggo da
http://www.microsoft.com/italy/msdn/library/default.asp?url=/italy/msdn/libr
ary/net/vbnet/vbtchperfopt.asp?frame=true
Larghezza dei tipi di dati
I tipi di dati più efficienti sono quelli che utilizzano la larghezza dei
dati nativi della piattaforma in esecuzione. Nelle piattaforme correnti, la
larghezza dei dati è di 32 bit, sia per il computer che per il sistema
operativo.
Di conseguenza, Integer è attualmente il tipo di dati più efficiente in
Visual Basic .NET. Seguono, in ordine di efficienza, Long, Short e Byte.
----
Leggo dalla guida: Riepilogo dei tipi di dati
Tipo          Allocazione in memoria (byte)
Byte           1
Integer        2
Double       8
Short          2
---------
Qualcosa non mi quadra.
L'efficenza sembra non viaggi con il consumo di memoria.
Quindi:
Dim by As Byte = 2
è meno performante di
Dim int As Int32 = 2
Nel caso non era meglio eliminare il Byte e lo Short ?
grazie
giuseppeD

 Nel caso non era meglio eliminare il Byte e lo Short ?
E perché mai? Hanno lasciato il Goto...

 ha scritto nel messaggio
news:kgBMa.5150$xK6.1...@news1.tin.it...

Il GOTO appartiene alla stessa categoria di On Error Resume Next ,
al solo accenno tutti inorridiscono, ma i programmi ne sono pieni.
Chissà quante volte si è battuto i tasti con un solo occhio.
Quindi in necessità impellenti sono risolutori.
Della serie, intanto non fermo il lavoro, poi con calma adotto soluzioni più
eleganti.
Diversa mi sembra la posizione di Byte e Short, se integer è più
performante, meglio eliminarli.
giuseppeD

 performante, meglio eliminarli.
Ma non ti accorgi che ti contraddici da solo ?...
Inizialmente parlavi di "piattaforme".
Ma non esiste solo la piattaforma Intel
e non esiste solo il sistema operativo Windows.
Tra l'altro, hai pure sbagliato nel dire che
il tipo dati più performante è Integer, perché
questo tipo dati è dipendente dalla piattaforma.
Nelle piattaforme a 16 bit è uguale a Short, mentre
nelle piattaforme a 32 bit è uguale a un Long.
--
Er Roscio.

 nelle piattaforme a 32 bit è uguale a un Long.
Si parla di 
VB.NET
Quindi di .NET Framework. Ad oggi installabile solo con Windows 2000, 2003,
XP prof. , per lo sviluppo
e da windows 98 in su per l'installazione.
(Tralascio i vari tentativi per l'utilizzo con altri sistemi operativi.)
Quindi in piattaforme a 32 bit.
Passo della Microsoft:
"efficienti sono quelli che utilizzano la larghezza dei dati nativi della
piattaforma in esecuzione"
Quindi il tipo Integer o Int32 che era il Long per VB6
Non so Windows 2003 server, ma se è 64 bit il più efficiente sarebbe int64
Salve ^__^
giuseppeD

Nel caso non era meglio eliminare il Byte e lo Short ?
Be', in una struttura potresti benissimo immagazzinare i dati a
livello di singolo byte, se non addirittura di bit. Immagina di
lavorare su un file, ad esempio.
-- 
ciao, hal


Due riflessioni:
1-
Giusta l'osservazione di Hal,
quindi mai considerare solo il problema specifico momentaneo,
ma zummare prima di trarre conclusioni.
2-
leggere sempre le specifiche del prodotto.
thanks
giuseppeD

 Non so Windows 2003 server, ma se è 64 bit il più efficiente sarebbe int64
Esatto, e non dipende dalla memoria utilizzata, ma semplicemente da come il
processore si macina i dati.
A occhio direi che un int64 è più performante di un byte perchè per il byte
va fatto l'allineamento mentro per l'int64 no, ma questa è una mia
supposizione.
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 Non so Windows 2003 server, ma se č 64 bit il piů efficiente sarebbe int64
Ma in VB6 il VeryLong non esiste !... :-)))
(purtroppo !...)
--
Er Roscio.