內核態常用獲取納秒的函數。u64是unsigned long long類型的數據類型,打印用%llu。
u64 ktime_get_ns(void) u64 ktime_get_real_ns(void) u64 ktime_get_raw_ns(void)
計算程序的運行時間:
u64 t1,t2,d0; t1 = ktime_get_real_ns(); { // 運行程序段 } t2 = ktime_get_real_ns(); d0 = t2 - t1; printk("duration:%llu.",d0);
注意多核使用情況,如果你發現時間t1超前與t2,說明是多核影響的。
參考:
https://www.kernel.org/doc/html/latest/core-api/timekeeping.html