2011-05-18 13 views
19

Las matrices de JavaScript, implementadas en Firefox 4 y Chrome 7, son una manera muy eficiente de almacenar y trabajar con datos binarios en JavaScript. Sin embargo, las implementaciones actuales solo proporcionan vistas enteras de hasta 32 bits por miembro, con Int32Array y Uint32Array. ¿Se están planificando las vistas enteras de 64 bits para la implementación? ¿Cómo puedo implementar vistas enteras de 64 bits? ¿Cuánto más lento serán?Arrays de JavaScript: ¿números enteros de 64 bits?

+0

¿Podría usar una biblioteca JS BigInt y almacenarlas en matrices? – Simeon

+2

Eso estaría bien para el uso ligero, pero terriblemente lento para los propósitos que las matrices tipadas se crearon para resolver (es decir, almacenamiento y manipulación enteros/flotantes eficientes a gran escala). –

+1

¿Una lib específica de BigInt utilizando Int32Array como almacenamiento base? – Simeon

Respuesta

15

No hay forma práctica de implementar un Int64Array, porque todos los números en JavaScript son de 64 bits de punto flotante números, que sólo tienen 53 bits de precisión. Como dijo Simeon en su comentario, podrías usar una gran biblioteca de enteros, pero sería mucho más lenta.

Si realmente necesita una matriz de enteros de 64 bits, independientemente del rendimiento, la biblioteca de cierre de Google tiene un 64-bit Long class que me imagino que es más rápido que una biblioteca de enteros grandes más general. Sin embargo, nunca lo he usado, y no sé si puedes separarlo fácilmente del resto de la biblioteca.

+4

Solo lanzando mis $ 0.02 aquí sobre un tema antiguo: I necesitaba una clase int de 64 bits en una aplicación flash que estaba escribiendo hace un tiempo. Basé mi implementación en cierres Clase "larga" sin problemas - no hay dependencias de clases externas. – jordancpaul

+0

@jordancpaul Gracias, eso es bueno saberlo! –

Cuestiones relacionadas