2011-05-18 34 views
19

Firefox 4 ve Chrome 7'de uygulanan JavaScript yazılan diziler, JavaScript'teki ikili verilerle çok verimli bir şekilde depolama ve çalışma yöntemidir. Ancak, geçerli uygulamalar yalnızca Int32Array ve ile üye başına 32 bite kadar tamsayı görüntüler sağlar. Uygulama için 64 bit tamsayı görünümleri planlanıyor mu? 64 bit tamsayı görünümlerini nasıl uygularım? Ne kadar yavaş olacaklar? JavaScript tüm sayılar yalnızca hassas 53 bit var 64 bitlik kayan noktalı sayılar, çünküJavaScript yazılan diziler: 64 bit tam sayı?

+0

JS BigInt kitaplığı kullanabilir ve dizilerdekileri depolayabilirsiniz? – Simeon

+2

Bu, hafif kullanım için iyi olurdu, ancak yazılan dizilerin çözülmesi için oluşturulmuş (yani, büyük boyutlu olarak etkin tamsayı/yüzer depolama ve manipülasyon) amaçlarla korkunç derecede yavaştır. –

+1

Belirli bir BigInt lib, temel depolama birimi olarak Int32Array'i kullanıyor mu? – Simeon

cevap

15

, bir Int64Array uygulamak için pratik bir yolu yoktur. Simeon'un söylediği gibi, büyük bir tamsayı kütüphanesi kullanabilirsiniz, ama çok daha yavaş olurdu.

Performanstan bağımsız olarak, bir 64 bit tam sayı dizisine ihtiyacınız varsa, Google Closure kitaplığı, daha genel bir büyük tamsayı kitaplığından daha hızlı olduğunu düşündüğüm bir 64-bit Long class'a sahiptir. Bunu hiç kullanmadım ve kütüphanenin geri kalanından kolayca ayırabileceğinizi bilmiyorum.

+4

$ 0.02 $ 'yı eski bir konu üzerine atıyorum: I Bir süre önce yazdığım bir flash uygulamasında 64 bitlik bir int sınıfına ihtiyaç duydum.Uygulamamı "Long" sınıfında sorun olmadan kapatıyorum - harici sınıf bağımlılıkları yok – jordancpaul

+0

@jordancpaul Teşekkürler, bu bilmek güzel! –