运行坏境:虚拟机下ubuntu10.04, i3处理器
今天发现在pjsip开源代码在实现哈希表值的时候竟然不是使用常见的“%”运算,而是“&”这让我很好奇,猜想&运算比%运算要快,于是写了下面代码来验证自己的猜想,事实确实是这样的。
下面是比较运算符 (乘*、除/ 、求余数%、与&、或| )的运算时间比较
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#define TOTAL_TIMES 1000000000
int main()
{
int i, res[5] = {12389};
struct timeval time[6];
unsigned long sub[5] = {0}, least;
//struct timeval tv1, tv2, tv3;
gettimeofday(&time[0], NULL);
for (i=0; i<TOTAL_TIMES; i++)
res[0] *= 64;
gettimeofday(&time[1], NULL);
for (i=0; i<TOTAL_TIMES; i++)
res[1] &= 64;
gettimeofday(&time[2], NULL);
for (i=0; i<TOTAL_TIMES; i+&#