Bre*_*ill 9 javascript performance typedarray
C#具有高性能阵列复印功能来复制阵列到位:
Array.Copy(source, destination, length)
Run Code Online (Sandbox Code Playgroud)
它比手动操作更快,即:
for (var i = 0; i < length; i++)
destination[i] = source[i];
Run Code Online (Sandbox Code Playgroud)
我在寻找一个相当于高性能复制功能来复制阵列到位在Javascript中,用于Int32Array和Float32Array能及时发现没有这样的功能:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
最接近的是"copyWithin",它只在数组内部进行复制.
是否有一个内置的高性能拷贝功能TypedArrays 到位?
B计划,是否有内置的高性能克隆功能?(编辑:看起来像slice()就是答案)
aps*_*ers 16
您正在寻找.set哪个允许您使用输入数组(或TypedArray)设置数组的值,可选择从目标数组上的某个偏移量开始:
destination.set(source);
destination.set(source, offset);
Run Code Online (Sandbox Code Playgroud)
或者,设置有限数量的输入数组:
destination.set(source.slice(limit), offset);
Run Code Online (Sandbox Code Playgroud)
如果你想要创建一个新的TypedArray,你可以简单地使用.slice:
source.slice();
Run Code Online (Sandbox Code Playgroud)
克隆到现有的类型化数组:
destination.set(source);
destination.set(source, offset);
Run Code Online (Sandbox Code Playgroud)
克隆到一个新的 typedarray 示例:(这是最快的!)
var source = new Uint8Array([1,2,3]);
var cloned = new Uint8Array(source);
Run Code Online (Sandbox Code Playgroud)
您可以使用slice(0);.
var clone = myArray.slice(0);
Run Code Online (Sandbox Code Playgroud)
您可以将其设为本机方法:
Array.prototype.clone = function() {
return this.slice(0);
};
Run Code Online (Sandbox Code Playgroud)
与循环相比的性能链接
| 归档时间: |
|
| 查看次数: |
5145 次 |
| 最近记录: |