回答
在node.js中既Buffer
和WebAssembly Memory
对象具有属性buffer
是ArrayBuffer
类型本身被定义为Typed Arrays in ECMAScript/JavaScript 2015一部分。
node --version
v8.1.2
node
> mem = new WebAssembly.Memory({initial: 10});
Memory {}
> buf = new Buffer("abc")
<Buffer 61 62 63>
> mem.buffer
ArrayBuffer { byteLength: 655360 }
> buf.buffer
ArrayBuffer { byteLength: 8192 }
一个普通的ArrayBuffer对象只是一个字节流的容器。为了访问和使用它,你必须将它打包/转换为Typed Array(例如Uint8Array,DataView等),node.js Buffer或WebAssembly Memory。
tks为答案@ kanaka。我不知道下面都有一个ArrayBuffer。那么,使用WebAssembly Memory还是有意义的,或者直接使用ArrayBuffer over node.js Buffer? –
这真的取决于你想要完成的事情。你可以非常有效地在类型数组之间进行复制(特别是如果你使用'set'方法),所以根据不同的目的使用不同的类型并根据需要进行转换/复制可能不是一个很大的性能问题,除非你正在做的是性能敏感的。 – kanaka
一个显着差异是WebAssembly.Memory
可通过Memory.prototype.grow
调整大小,而Buffer
不可以。
另一个是WebAssembly.Memory
的设计,使硬件内存保护可以用来消除动态范围检查,因此它的长度被钳位到64kb的倍数。 Buffer
可以有任意的字节长度。
- 1. Opera Unite和Node.js有什么区别?
- 2. jQuery和Node.js有什么区别?
- 3. webassembly数据类型中的uint32和i32有什么区别?
- 4. node.js与meteor.js有什么区别?
- 5. 有什么区别`和$(Bash中有什么区别?
- 6. ==和===有什么区别?
- 7. ==和===有什么区别?
- 8. 有什么区别? :和||
- 9. ==和===有什么区别?
- 10. '=='和'==='有什么区别?
- 11. `&`和`ref`有什么区别?
- 12. 有什么区别:。!和:r!?
- 13. | 0和~~有什么区别?
- 14. Appender和〜有什么区别?
- 15. Socket.IO和Firebase有什么区别?
- 16. pip和npm有什么区别?
- 17. JavaScript - “url.path”和“url.pathname”有什么区别?
- 18. 在PHP中的内存映射文件,有什么区别php:// temp和php:// memory
- 19. engine.io和socket.io有什么区别?
- 20. SimpleWebRTC,EasyRTC和Kurento ..有什么区别?
- 21. Node.js MySQL模块中的mysql.createConnection和mysql.createPool有什么区别?
- 22. C#和Node.js控制台输出有什么区别?
- 23. Node.js HTTP请求和获取有什么区别?
- 24. 对于Node.js中的文件,stream.end和stream.destroySoon有什么区别?
- 25. 在Node.js模块中使用“exports”和“this”有什么区别?
- 26. Node.js的Cluster模块和Learnboost的Cluster模块有什么区别?
- 27. node.js中的require(path)和require(path)()有什么区别
- 28. OCaml/Node.JS上的Lwt.async和Lwt_main.run之间有什么区别?
- 29. 平台和框架有什么区别?
- 30. 有什么区别
这个问题就像问沃尔沃手套箱和宝马发动机罩之间的区别是什么。当然,都包含东西。 –