Coulage rapide en C # en utilisant BitConverter, peut-il être plus rapide?
-
30-10-2019 - |
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