BUG:
时间精度造成错误的测试结果
由于clock()函数提供的时间精度非常有限,当输入的测试容量过小时,可能会造成错误的结果。
某些情况下,需要被操作的内存空间全部或相当大的一部分在CPU缓存中,导致操作很快完成,这时候两次通过clock()得到的时间戳相同,导致测试结果为-2048MB(在我的机器上测试容量<=28MB都可能出现这种情况)。
另一种情况是,输入的内存容量仍然不够大,结果由于clock()的精度问题造成的误差使得测试结果严重偏小。
或许LZ需要高精度的系统时间,在一个拥有超大SRAM的系统上,这个问题或许会更加严重。