您可以在JavaScript中使用Int8,Uint8,Int16等,但它需要比正常更多的努力 - 請參閱TypedArrays。
var A = new Uint32Array(new ArrayBuffer(4*n));
var B = new Uint32Array(new ArrayBuffer(4*n));
//assign some example values to A
for(var i=0;i<n;i++)
A[i] = i; //note RHS is implicitly converted to uint32
//assign some example values to B
for(var i=0;i<n;i++)
B[i] = 4*i+3; //again, note RHS is implicitly converted to uint32
//this is true integer arithmetic
for(var i=0;i<n;i++)
A[i] += B[i];
近日,asm.js項目取得就可以編譯C/C++代碼,在一個比較極端的方式使用這些TypedArrays奇怪的Javascript,好處是,你可以使用現有的C/C++代碼並且它應該在瀏覽器中運行得非常快(特別是如果瀏覽器供應商爲這種類型的代碼實現特殊的優化,這種情況很快就會發生)。
在旁註中*如果程序可以執行SIMD並行操作(參見wikipeda),即如果您的代碼使用SSEx指令集,則您的算術運算速度會快得多,實際上使用int8s的速度會快於使用int16s等
*我不認爲這是與瀏覽器有關,但由於他們太難以利用在飛行中。 編輯:事實證明,Firefox正在嘗試這種優化。此外,Dart(真正的Dart,而不是Dart編譯爲js)將能夠在Chrome中完成此操作。
儘可能簡單,然後如果需要嘗試優化 – dchhetri
我無法想象一個Web應用程序,其中CPU時間甚至接近網絡時間。 – stark
@stark,客戶端音頻處理將是一種情況......儘管這是一個有爭議的問題,因爲JavaScript不支持他所談論的內容。 – Brad