linux内核态获取纳秒ns时间

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

原文地址:https://www.cnblogs.com/ggzhangxiaochao/p/13691371.html