Buffered I/O

发现有时事情无法按照预测的进行。

 

我们从各种书上看到,fread()系列的C语言标准库函数是有缓存的I/O,这是否意味着我们可以随便的用呢?

 

我做了个小实验,文件拷贝,使用fread和fwrite,每次1字节,100M左右的文件用时100秒左右,每次1024字节,用时8秒。在前一种情况下,外存操作已经不是主要矛盾,内存操作则成为主要矛盾。1秒的时间完成大约100万个COPY操作,问题出在对内存的操作上。

 

所以我们一定要牢记各种操作的时间量级,在规模大了以后,什么都有可能成为瓶颈。

 

DRAM访问时间:100ns量级

磁盘访问时间:10ms量级

CPU时钟周期:1ns量级

---来自《深入理解计算机系统》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值