|
|
@ -96,4 +96,16 @@ Sub Binaries |
|
|
|
The reference objects sub binaries and match contexts can reference part of a refc binary or heap binary |
|
|
|
子二进制文件由split_binary / 2创建或者当二进制文件以二进制模式匹配时。子二进制是对另一个二进制文件(refc或堆二进制文件的一部分,但从不进入另一个子二进制文件)的引用。因此,匹配二进制文件相对便宜,因为实际的二进制数据永远不会被复制。 |
|
|
|
Match Context |
|
|
|
匹配上下文类似于子二进制,但针对二进制匹配进行了优化 |
|
|
|
匹配上下文类似于子二进制,但针对二进制匹配进行了优化 |
|
|
|
|
|
|
|
关于iolist |
|
|
|
定义(直接引用霸业的文章) |
|
|
|
1. [] |
|
|
|
2. binary |
|
|
|
3. 列表, 每个元素是int(0-255)或者binary或者iolist. |
|
|
|
其中binary是指 bitsize % 8 == 0 . |
|
|
|
int 是0-255 |
|
|
|
Iolist的作用是用于往port送数据的时候.由于底层的系统调用如writev支持向量写, 就避免了无谓的iolist_to_binary这样的扁平话操作, 避免了内存拷贝,极大的提高了效率. |
|
|
|
另外额外补充: |
|
|
|
erlang中列表时在头部添加比较高效,但是binary是在尾部追加更高效 |
|
|
|
|