我应该为每个编码操作调用新的TextEncoder吗?



我想获得字符串的Uint8Array表示。它是更好的预分配它一次和重用或创建一个新的编码?

function stringToUtf8ByteArray(str) {
return new TextEncoder("utf-8").encode(str)
}
var TE = new TextEncoder("utf-8")
function stringToUtf8ByteArray(str) {
return TE.encode(str)
}

我猜,不会有任何竞争条件,因为js是单线程的事情,不是吗?

TextEncoder不包含任何会使创建成本高昂的内容,因此重用实例的好处非常小。对encode方法的调用正在进行繁重的工作,因此每次创建TextEncoder通常都不是一个问题。

你是对的,如果你预先分配实例,就不会有竞争条件。

如果您确实需要调整代码的性能,您应该查看encodeInto方法,它将结果放在您提供的数组中。重用这个数组比重用TextEncoder实例更能提高性能。

Opera目前不支持encodeInto方法,因此您可能需要在我链接到的页面上提供的polyfill。

相关内容

  • 没有找到相关文章

最新更新