首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单次调用的CLOCK_REALTIME和CLOCK_MONOTONIC

单次调用的CLOCK_REALTIME和CLOCK_MONOTONIC
EN

Stack Overflow用户
提问于 2021-09-15 07:25:44
回答 1查看 113关注 0票数 2

我一个接一个地使用clock_gettime(CLOCK_MONOTONIC, &tsp1)clock_gettime(CLOCK_REALTIME, &tsp2)。我可以用一个电话来减少差别吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-15 08:19:35

没有标准的、可移植的方法-- clock_gettime是基于不支持这种“多查询”的操作系统功能的。扩展此功能并不简单,可能需要开发一个驱动程序来为您公开此功能。

特别是在Linux上,这可能比较容易,并且不需要编写驱动程序。

在Linux上,clock_gettime实际上并不调用内核--它使用允许内核向用户空间公开信息的vdso,而不必切换到内核模式。这种用法的典型例子是像gettimeofdayclock_gettime这样的函数--它们不是特权函数(除了CLOCK_REALTIME之外,它确实需要一些特权),而且为了提高效率,这些信息可以提供给用户空间。

您可以利用vdso直接访问数据--查看/lib/vdso/gettimeofday.c中的函数--这些函数访问向vdso公开的表以获取当前时间。我专门链接到do_hres,它似乎是直接访问时间戳的函数。

通过自己访问vdso表,可以最小化开销,减少两个调用之间的差异。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69188720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档