还是保存文件的问题
时间:12-13
整理:3721RD
点击:
前天发帖请教定时循环中保存文件时间变长的问题,感谢fireknight的回复。
当时我换了一台机器试一下,程序运行正常。
后来发现程序连续运行时间长了还是出现保存时间过长的问题。
我把程序修改了一点,加了一个显示最长保存文件耗时的功能,程序见附件。
根据我运行的结果,保存文件耗时似乎在变化,正常时只要几毫秒,但隔一段时间会有一次耗时几秒,而且随着程序运行时间变长,保存耗时也在变长。
当时我换了一台机器试一下,程序运行正常。
后来发现程序连续运行时间长了还是出现保存时间过长的问题。
我把程序修改了一点,加了一个显示最长保存文件耗时的功能,程序见附件。
根据我运行的结果,保存文件耗时似乎在变化,正常时只要几毫秒,但隔一段时间会有一次耗时几秒,而且随着程序运行时间变长,保存耗时也在变长。
最初的几次写硬盘是由硬盘的缓存执行的,当缓存满了就得寻道写硬盘,当然会慢
----藕的猜测
所以去找几块不同缓存大小的硬盘试试看,8m,16m和32m,再去组个raid0试试看,2块,3块,10块……
藕字让我想起了一个名人……
。。。。。。
你说的有些像,但我猜不是主要原因,因为把定时循环换为while循环情况要好很多。
我弄了两个硬盘组了个raid0,状况确实明显好些,你说的这个原因确实存在。
但是用while循环明显好些是什么原因呢?
另外我还注意了一下程序运行时对CPU资源占用的情况,发现定时循环占用大量的CPU资源,经常达到50%(双核处理器),并且很不稳定,都是当保存文件耗时长的时候CPU资源占用多。
用while循环CPU资源占用少得多。
我想是不是定时循环中使用CPU作计数来达到计时的目的?
有没有不占CPU的定时方法,像单片机系统中提供的硬件定时器?
俄,占用cpu倒可能是一个很影响速度原因
没事别用定时循环,那个是rt底下用的,用while加wait until足够了
保存文件 相关文章: