Rápido de fundición en C# usando BitConverter, puede ser más rápido?
-
30-10-2019 - |
Pregunta
En nuestra aplicación, tenemos una muy grande de matriz de bytes y tenemos que convertir estos bytes en diferentes tipos.En la actualidad, utilizamos BitConverter.ToXXXX()
para este propósito.Nuestros pesos pesados son, ToInt16
y ToUInt64
.
Para UInt64
, nuestro problema es que el flujo de datos tiene actualmente 6 bytes de datos para representar un entero grande.Ya que no hay ninguna función nativa para convertir de 6 bytes de datos para UInt64
, hacemos:
UInt64 value = BitConverter.ToUInt64() & 0x0000ffffffffffff;
Nuestro uso de ToInt16
es más simple, no tiene que realizar ninguna manipulación de bits.
Lo hacemos de muchas de estas 2 operaciones que quería preguntar a la MANERA de la comunidad si hay una manera más rápida de hacer estas conversiones.Ahora, aproximadamente el 20% de toda nuestra ciclos de CPU consumido por estas dos funciones.
No hay solución correcta