1.主要思想
书上和很多地方只着重提到了延迟写,我有点疑惑,那么读缓冲是这样的情况呢?后面利用setbuf()自定义了一下缓冲,并输出。结合之前对于实现intel论文上的并行基数排序中一个优化,这个和延迟写相对的读缓冲优化,应该称为预读。这两个技术颇为通用,在标准IO缓冲中、在cahce机制中等等。
- 预读,利用局部性原理,猜测既然读了一个字符,那么相邻一块字符被读几率都很大。为减少系统调用、减少实际IO(尽量利用传输带宽)等目的,一次取出一大块内容备用;
- 延迟写,收集一大块内容后,再进行系统调用,或者实际IO操作,目的同上;
to be continued…