内核态常用获取纳秒的函数。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