Node中的什么情况下使用Buffer.alloc(),什么时候使用Buffer.allocUnsafe()?

Node中的什么情况下使用Buffer.alloc(),什么时候使用Buffer.allocUnsafe().fill()?
4K是一个界线,具体举例说明一下这两个API分别在什么情况下使用有助于性能提升。

阅读 6.1k
2 个回答

可以参考 Node.js 的文档,二者的区别在于 .alloc() 会对分配的空间进行填充,保证新分配的空间不会含有以前的数据。而 .allocUnsafe() 不会填充,所以更快。但是如果 .allocUnsafe() 之后立即 .fill(),其效果和 .alloc() 一样,但执行效率可能会略差(需要实测确定)。

4K 的界限与这个问题无关,是 .allocUnsafe() 内部的运作的时候对分配处理的一个界限,主要用于优化其效率。

8K是一个界限,创建buff的大小小于8KB,使用allocPool()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题