Question

Dans notre application, nous avons un très grand tableau d'octets et nous devons convertir ces octets en différents types. Actuellement, nous utilisons BitConverter.ToXXXX() dans ce but. Nos lourds frappeurs sont, ToInt16 et ToUInt64.

Pour UInt64, notre problème est que le flux de données a en fait 6 octets de données pour représenter un grand entier. Puisqu'il n'y a pas de fonction native pour convertir 6 octets de données UInt64, Nous faisons:

UInt64 value = BitConverter.ToUInt64() & 0x0000ffffffffffff;

Notre utilisation de ToInt16 est plus simple, je n'ai pas à faire de manipulation de bit.

Nous faisons tellement de ces 2 opérations que je voulais demander à la communauté SO s'il existe un moyen plus rapide de faire ces conversions. À l'heure actuelle, environ 20% de nos cycles de CPU sont consommés par ces deux fonctions.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top