我首先要承认这是一个课堂项目,因为它很明显。我们应该进行读取以探测文件系统的块大小。我的问题是执行此操作所需的时间似乎呈线性增加,没有像我预期的那样采取任何步骤。
我正在计时这样的阅读:
double startTime = getticks();
read = fread(x, 1, toRead, fp);
double endTime = getticks();
getticks 使用 rdtsc 指令的地方。恐怕有缓存/预取导致读取在 fread 期间不需要时间。我尝试在每次执行我的程序之间创建一个随机文件,但这并不能缓解我的问题。
准确测量从磁盘读取所用时间的最佳方法是什么?我很确定我的块大小是 4096,但是我怎样才能获得支持它的数据呢?