2013-11-27 48 views
1

當與.timer on一起使用Sqlite shell時,我得到控制檯打印,如「CPU時間:用戶0.062400 sys 0.015600」。我如何將其轉換爲毫秒?有沒有其他方法來測量Sqlite shell中的總查詢時間(以毫秒爲單位)?sqlite shell報告CPU時間:單位是什麼?

回答

5

單位是秒。見參考文獻:https://github.com/freebsd/pkg/blob/master/external/sqlite/shell.c

從該頁面的代碼快照:

/* Return the difference of two time_structs in seconds */ 
static double timeDiff(struct timeval *pStart, struct timeval *pEnd){ 
    return (pEnd->tv_usec - pStart->tv_usec)*0.000001 + 
     (double)(pEnd->tv_sec - pStart->tv_sec); 
} 

/* 
** Print the timing results. 
*/ 
static void endTimer(void){ 
    if(enableTimer){ 
    struct rusage sEnd; 
    getrusage(RUSAGE_SELF, &sEnd); 
    printf("CPU Time: user %f sys %f\n", 
     timeDiff(&sBegin.ru_utime, &sEnd.ru_utime), 
     timeDiff(&sBegin.ru_stime, &sEnd.ru_stime)); 
    } 
} 

如果你想轉換到毫秒,乘以1000

+1

方式來拉的源泉! – Brannon

+0

@Rots你能回答http://stackoverflow.com/questions/26052240/execution-time-of-an-sqlite-query-units ? – Spade

+1

@Spade我看到你現在已經接受了一個答案,我希望你找到了你需要的東西。 – Rots

相關問題