读取文件时的编译器优化

时间:2013-04-22 12:23:17

标签: c++ compiler-optimization fread

我开始编写一个应该读取大型二进制文件(几千兆字节)的c ++程序。首先,我的程序只在循环中执行fread()以读取双精度数组:

double *arr = (double*)malloc(sizeof(double) * ARRSIZE);
FILE *fp = fopen(argv[1], "r");
int num_read;
do {
    num_read = fread(arr, sizeof(double), ARRSIZE, fp);
} while (num_read > 0);
free(arr);

我想看看我的程序的吞吐量,但我发现我可以在大约半秒钟内读取2 GB。如果我没有对数据做任何事情,是否存在可能忽略fread()次调用的编译器优化?

如果有,我怎么能确定我看到我的程序的实际最大吞吐量?

谢谢!

0 个答案:

没有答案