- 论坛徽章:
- 0
|
我用的内核: 2.6.18-274.12.1.el5, x86_64 x86_64 x86_64 GNU/Linux, 多CPU, 大内存.
特定程序teDing() 第一次读取文件花费1000秒.
可是如果在执行上面teDing()之前, 我先执行下面程序(对每个要读的文件都预先这么处理), 这时, 所有预处理时间+teDing()(当然是第一次读)的时间也最多不过200秒. 比没有预读处理的要少很多. 我多次这么实验. 得到的都是这样的现象.
什么原因?
谢谢高人赐教.
###############预读程序##################
#include <fcntl.h>
#define READSIZE 1024*1024*1024
char rbuf[READSIZE];
int main(int ac, char* av[]){
int rfd=-1,rlen=-1,ret=-1;
if(ac == 2){
if((rfd= open(av[1],O_RDONLY))== -1)
return -1;
while((rlen = read(rfd,rbuf,READSIZE)) > 0){;}
ret = close(rfd);
}
return ret;
}
#################################
|
|