Byte vs Short vs Int (avec la variante non signée) en C #?

On m’a dit que tant que la taille de la mémoire n’était pas un gros problème, il est toujours préférable d’utiliser un int au lieu d’un octet ou d’un court-métrage car il est en fait plus facile pour le processeur de gérer un int (le processeur doit faire des tâches supplémentaires travailler avec des octets et des shorts). Est-ce vrai en C #?

Cela dépend plus du processeur que de la langue. Un microcontrôleur 8 bits sera presque certainement en mesure d’accéder à un caractère 8 bits plus rapidement qu’un int 32 bits.

Être conscient de cette limitation permet aux concepteurs d’algorithmes de planifier en conséquence: L’une des raisons pour lesquelles Rijndael a remporté le concours AES est due au fait qu’ils avaient prévu de créer des versions 8 bits aussi rapidement que possible, en plus de se soucier de la vitesse d’exécution sur 32 bits. ou des processeurs plus importants.

Mais pour les microprocesseurs 32 bits et 64 bits, l’alignement des données et l’access en bloc aux données sont essentiels: les access int sont souvent beaucoup plus rapides que les access caractères, et long long (64 bits) peuvent être encore plus rapides pour certains systèmes. (Mais les opérations 64 bits sur une machine 32 bits sont beaucoup plus lentes. Il est donc logique d’utiliser des types de données 64 bits lorsque les données ont plus de sens en 64 bits.)