不知道大家有没有这种习惯,在使用标准IO库写文件时还喜欢另外开辟一个大的缓存区来缓存要写的数据,待这个大的缓存区满了以后再调用fwrite/fread来进行IO操作,以为这样可以减少IO次数。但实际情况却不是这样的,因为标准IO中已经有一个缓存了,缓存的大小设置为操作系统一次写硬盘的字符数。上述做法,相当于在用户态环境下多做了一次无无谓的内存拷贝操作。
我在linux环境下写了一个例子来验证我的想法
例子:
以上是我的个人看法,不知道是否正确,欢迎大家参与讨论
qq:41031962
mail:jiangfg1@gmail.com