haskell - int16 - convert.toint32 c#
¿Qué rendimiento puedo esperar de Int32 e Int64? (2)
A menudo veo programas como este , donde Int64
es un asesino de rendimiento absoluto en plataformas de 32 bits. Mi pregunta es ahora:
Si necesito una longitud de palabra específica para mi tarea (en mi caso un RNG), ¿ Int64
es eficiente en plataformas de 64 bits o seguirá usando las llamadas C? ¿Y qué tan eficiente es convertir un Int64
en Int
?
en un sistema de 64 bits, Int64 debería estar bien, aunque no estoy seguro.
Lo que es más importante si está haciendo Crypto o generación de números aleatorios, DEBE usar el tipo de datos que el algoritmo dice usar, también tenga cuidado con la firma. Si lo hace, no hará los resultados incorrectos, lo que podría significar que su criptografía no es segura o su generador de números aleatorios no es realmente aleatorio (los RNG son difíciles y muchos parecen aleatorios pero no lo son).
Para cualquier otro tipo de trabajo, utilice Integer siempre que pueda, o incluso mejor, haga que su programa sea polimórfico utilizando la clase de tipo Integral. Entonces, si crees que tu programa es más lento de lo que debería, perfilalo para determinar dónde debes concentrarte cuando trates de acelerarlo. si usa Integral type-class, cambiar de Integer a Int es fácil. Haskell debe ser lo suficientemente inteligente como para especializar (la mayoría) el código que usa polimorfismo para evitar gastos generales.
Interesante artículo sobre el rendimiento de 64 bits aquí:
¿No será mi código más rápido en 64 bits?
Como dice el artículo, el gran cuello de botella no es el procesador, es el caché y la memoria de E / S.