每次计时开始之前,加了两行
memset(result_double, 0, sizeof(result_double));
memset(result_float, 0, sizeof(result_float));
./a.out
double multiply 1 cost 14 ms.
float multiply 1 cost 9 ms.
double multiply 2 cost 14 ms.
float multiply 2 cost 9 ms.
double multiply 3 cost 14 ms.
float multiply 3 cost 14 ms.
double multiply 4 cost 12 ms.
float multiply 4 cost 11 ms.
之前第一次大耗时看起来更像是使用时开辟内存导致的。然后,差不多每次运行都是前两次float和double时间有差距,后面就没有或者差距很小。不知道怎么解释了。反正我现在除了有些大数据量的东西需要考虑存储的,或者本来就是库已经定义了float格式的,自己使用的一般的数据里面都是无脑double
又把float和double的顺序换了一下
./a.out
float multiply 1 cost 14 ms.
double multiply 1 cost 11 ms.
float multiply 2 cost 14 ms.
double multiply 2 cost 11 ms.
float multiply 3 cost 14 ms.
double multiply 3 cost 14 ms.
float multiply 4 cost 10 ms.
double multiply 4 cost 12 ms.
【 在 foliver 的大作中提到: 】
: 应该是你那两个数组缓存导致的。
: 你在测试之前,先用循环把那两个数组赋值一下。
--
修改:confinement FROM 14.155.19.*
FROM 14.155.19.*