#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <string.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <errno.h>
long long ustime(void) {
struct timeval tv;
long long ust;
gettimeofday(&tv, NULL);
ust = ((long)tv.tv_sec)*1000000;
ust += tv.tv_usec;
return ust;
}
int main()
{
unsigned long ulCount = 0;
long long t1,t2,diff;
int pid;
struct timeval tv;
t1 = ustime();
while(1)
{
ulCount ++;
pid = getpid(); //树莓派上执行时间在1100ns、这个有些执行4-10ns,原因是不同版本的glibc对这个取到的值有缓存优化
(void)gettimeofday(&tv, NULL); //树莓派上执行时间在70ns、intel xeon E5-4627 v3上约35ns
if ((ulCount&0xFFFFF)==0)
{
t2 = ustime();
diff = t2-t1;
printf("send count %lu, diff gettimeofday %lld\n", ulCount, diff);
//usleep(10*1000);
t1 = ustime();
}
}
return 0;
}