#include #include #include void test_gettimeofday() { struct timeval tv; struct timezone tz; int i = 0; for(i = 0; i < 1000000; i++) gettimeofday(&tv, &tz); } void test_clock() { int i = 0; for(i = 0; i < 1000000; i++) clock(); } void test_time() { int i = 0; for(i = 0; i < 1000000; i++) time(NULL); } #define PRINT_COST(f) do { \ clock_t __clk_t1, __clk_t2; \ __clk_t1 = clock(); \ f(); \ __clk_t2 = clock(); \ printf("%s() %0.2fms\n", #f, (double)(__clk_t2 - __clk_t1) / CLOCKS_PER_SEC * 1000); }while(0) int main() { PRINT_COST(test_gettimeofday); PRINT_COST(test_clock); PRINT_COST(test_time); return 0; }