In C # (e in altre lingue), possiamo definire una variabile numerica come short
, int
o long
(tra gli altri tipi), principalmente a seconda di quanto ci aspettiamo che i numeri ottengano . Molte operazioni matematiche (ad es., Aggiunta +
) valutano un intero ( int
), e quindi richiedono un cast esplicito per archiviare il risultato in una short
, anche quando si opera su due shorts
. È molto più facile (e probabilmente più leggibile) utilizzare semplicemente int
s, anche se non ci si aspetta mai che i numeri superino la capacità di memorizzazione di un short
. Infatti, sono sicuro che la maggior parte di noi scrive for
loop usando int
contatori, invece che short
contatori anche quando sarebbe sufficiente un short
.
Si potrebbe sostenere che l'utilizzo di int
è semplicemente a prova di futuro, ma ci sono certamente casi in cui sappiamo che short
sarà abbastanza grande.
C'è un vantaggio pratico nell'usare questi tipi di dati più piccoli, che compensa la fusione aggiuntiva necessaria e diminuisce la leggibilità? O è più pratico usare semplicemente int
ovunque, anche quando siamo sicuri che i valori non supereranno mai la capacità di short
(ad es. Il numero di assi su un grafico)? O il vantaggio si realizza solo quando abbiamo assolutamente bisogno dello spazio o delle prestazioni di quei tipi di dati più piccoli?
Modifica per l'indirizzo dupes:
Questo è vicino, ma è troppo ampio - e parla più alle prestazioni della CPU rispetto alle prestazioni della memoria (anche se ci sono molti paralleli).
Questo è vicino, ma non arriva all'aspetto pratico della mia domanda. Sì, ci sono momenti in cui l'uso di short
è appropriato, che la domanda fa un buon lavoro di illuminazione. Ma, appropriato non è sempre pratico, e l'aumento delle prestazioni (se ce ne sono) potrebbe non essere effettivamente realizzato.