功能:1、每次读取文件前清除缓存;2、分别计算一次写一个g文件、分多次写一个g文件、一次读取一个g文件、逆序读取文件、多次从不同起点读取文件的时间;
代码如下:
#include<stdio.h>
#include<sys/time.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
#define N 1024*1024*1024
#define M 1024*1024
#define T 1000000
FuncCleanCache()
{
printf("clean cache!\n");
char *str = "sync && echo 3 > /proc/sys/vm/drop_caches";
system(str);
}
void func1()
{
char *arr = (char *)malloc(sizeof(char)*N);
memset(arr,0,N);
struct timeval start,end;
unsigned long result;
FILE *fp = fopen("./file1.txt","wb+");
if(fp == NULL)
puts("file open fail!\n");
gettimeofday(&start,NULL);
fwrite(arr,sizeof(char),N,fp);
fflush(fp);
gettimeofday(&end,NULL);
fclose(fp);
free(arr);
arr = NULL;
result = T*(end.tv_sec - start.tv_sec) + end.tv_us