内存node.js Buffer内部使用多less个实际字节来存储1个逻辑字节的数据?
Node.js文档指出:
缓冲区类似于整数数组,但对应于V8堆外部的原始内存分配。
我是正确的,所有的整数都表示为内部在JavaScript中的64位浮点数?
这是否意味着在Node.js缓冲区中存储1个字节实际上需要8个字节的内存?
谢谢
缓冲区只是一个字节数组,所以缓冲区的长度基本上是缓冲区占用的字节数。
例如, 新的Buffer(size)构造函数logging为"Allocates a new buffer of size octets."
这里octets
清楚地将单元识别为单字节值。 同样, buf[index]
指出"Get and set the octet at index. The values refer to individual bytes, so the legal range is between 0x00 and 0xFF hex or 0 and 255."
。
虽然缓冲区绝对是一个字节数组,但是可以使用缓冲区对象上可用的buf.read *类的函数以整数或其他types与其交互。 它们中的每一个都具有受操作影响的特定数量的字节。
对于内部的更多细节,Node只是将这个长度传递给smalloc
,这个malloc
就像你期望分配指定的字节数一样。