多文件读写问题,速度边慢
yikun 2005-08-16 09:21:14 写了个多进程程序,每一进程读一个文件同时生成很多文件.1个1g的文件只需要57秒,但是100个10兆文件同时读写,却用了259秒。当然1g文件产生需要写文件远远少于100个10兆所产生的写文件。经过测试发觉瓶颈在io读写90%,主要是100个文件读取一个文件之后会生成很多个文件,不停的写。
有同事建议读文件到内存,一次读入500k,写文件的时候先写入内存10k,然后再写入文件。改写程序后发觉io占用确实降低60%左右。但速度依然没有提高,反而比原来降低。一次读入改成1兆,写文件时改成100k,速度有提高,但依然低于原来直接读写的速度。
我有几个问题:
1。读写入内存减少io操作是否比直接io速度更快?程序中读入写内存我只是简单的使用memcpy,read等命令,其中多次使用new delete 数组。这样是否会明显降低速度
2。怎样才能降低速度,改成多线程?或者其他方法?
谢谢。