IO是程序效率的瓶颈

在程序运行的过程中,IO很容易成为效率的瓶颈。

假设一个程序有5个线程。一个线程读文件,并把文件内容放入到队列中去,另外4个线程处理队列中的数据,并把处理结果写入到一些文件中。

如果文件缓存较小的话,由于一直存在IO的现象,程序效率会一直比较低,尽管开了4个线程处理数据,但是这4个线程并不能充分利用CPU资源,因为一直要等文件IO完成才能继续处理。

如果文件缓存比较大,开始的时候没有写文件,因此可以以接近100%的程度来利用CPU资源进行数据处理。但是一段时间以后缓存满了,便要开始写文件,这时候程序的效率又会低下来。

解决的方法是,让程序进入写文件阶段以后,读文件的线程就暂停,四个线程处理数据和写文件完成后,再重新启动读文件线程。这样会使写文件的效率较高,减少写文件时CPU利用率低的时间段,从而提高整体的效率。

比较简单的具体实施方法是让程序定时重启。否则需要比较复杂的多线程处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值