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

Linux内核的高精度时间是通过使用高精度定时器(hrtimer)来实现的。内核重新设计了一套软件架构,使得高精度定时器可以提供纳秒级的定时精度。这使得应用程序或内核驱动可以满足对精确时间有迫切需求的应用场景。在Linux内核中,我们可以使用不同的转换函数将不同单位的时间转换为ktime类型的时间。例如,我们可以使用ns_to_ktime将纳秒转换为ktime,使用ms_to_ktime将毫秒转换为ktime。这些转换函数可以帮助我们方便地使用不同单位的时间。此外,我们还可以使用ktime_to_us、ktime_to_ms和ktime_to_ns等函数将ktime类型的时间转换为微秒、毫秒和纳秒。这些转换函数可以帮助我们在需要时将ktime类型的时间转换为特定单位的时间。总的来说,Linux内核的高精度时间通过使用hrtimer和相关的转换函数来实现,为应用程序和内核驱动提供了精确和方便的时间操作功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux内核高精度定时器hrtimer](https://blog.csdn.net/haofeng_ma/article/details/122427732)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Linux内核高精度定时器(hrtimer)](https://blog.csdn.net/wang_518/article/details/116536201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值