您可以在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