最近有個需求,需要數據庫程序統計一次sql查詢的過程耗時多久,於是乎就需要程序獲取當前時間戳,由於這個時間非常短,因此需要精確的毫秒,話不多說,直接給程序~
#include <stdlib.h>
#include <stdio.h>
#include <sys/time.h>
#include <unistd.h>
int main(){
//執行sql之前
struct timeval begin;
gettimeofday(&begin,NULL);
long long beginTime = (long long)begin.tv_sec * 1000 + (long long)begin.tv_usec / 1000;
printf("beginTime is:%ld\n",beginTime);
//執行sql的過程
sleep(5);
//sql執行之後
struct timeval end;
gettimeofday(&end,NULL);
long long endTime = (long long)end.tv_sec * 1000 + (long long)end.tv_usec / 1000;
printf("endTime is:%ld\n",endTime);
long long interval = endTime - beginTime;
printf("mysql_handle_time:%ld@\n",interval);
return 0;
}
執行結果如下:
這段程序,不需要任何額外的庫,放到linux上gcc編譯運行即可,非常好用~