linux C獲取時間戳(精確到毫秒)

最近有個需求,需要數據庫程序統計一次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編譯運行即可,非常好用~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章