iolist类型

今天读到http://blog.yufeng.info的 gen_tcp:send的深度解刨和使用指南(初稿),看到下面这句:
引用

gent_tcp:send的时候数据的格式是iolist. 很多人会误会,特地把iolist特地变成list或者binary. 新生成的binary或者list在send之后要GC回收, 如果频繁的话,
系统的性能损失很大.
tcp驱动是支持scatter write的, 最终是调用writev系统调用的.所以我们要充分利用这一特性.
我们从上面的代码可以看出, io是按照这样的规则填充writev向量的: 如果iolist的元素是
1. int, 拷贝.
2. binary是heap binary, 拷贝
3. binary是proc binary而且大小<64字节拷贝.

同时tcp是流协议,我们在发送消息的时候, 通常需要在消息前面添加个头, 比如说4个字节的长度. 这个如果手工做的话, 效率非常低.

时,对iolist数据类型,不是很明白,然后自己在 http://www.cnblogs.com/me-sa/archive/2012/01/31/erlang0034.htmllist和iolist有什么区别找到了答案:
引用

1. []
2. binary
3. 列表, 每个元素是int(0-255)或者binary或者iolist.
其中binary是指 bitsize % 8 == 0 .
int 是0-255

你可能感兴趣的:(erlang,iolist)