首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到setitimer()的分辨率?

如何找到setitimer()的分辨率?
EN

Stack Overflow用户
提问于 2011-10-04 17:52:51
回答 2查看 1.2K关注 0票数 0

我需要一个高分辨率的定时器(至少要有微秒级别的分辨率),我发现setitimer()可以设置在微秒级别。

代码语言:javascript
复制
struct itimerval t;
t.it_interval.tv_sec = 0;
t.it_interval.tv_usec = 2;
t.it_value.tv_sec = 0;
t.it_value.tv_usec = 3;
setitimer (ITIMER_REAL , &t, NULL);

我需要知道的是setitimer()在linux中的实际分辨率?

EN

回答 2

Stack Overflow用户

发布于 2011-10-04 17:58:13

更低,实际上,但没有指定有多低。手册页说明:

可能会在一段(短)时间后到期,这取决于系统计时器分辨率和系统负载;请参阅时间(7)。

如果你需要微秒级的分辨率和精度,你就进入了实时领域。

票数 1
EN

Stack Overflow用户

发布于 2011-10-04 18:03:42

接口以微秒为单位,实际分辨率取决于内核配置和硬件资源。

如果您的内核配置没有设置高分辨率计时器选项,则解决方案是操作系统节拍分辨率-它本身在内核配置(CONFIG_HZ)中设置,通常在100到1000 hz之间。

如果启用了高分辨率计时器选项,则计时器分辨率取决于您特定的计时器硬件能力和限制。

您可以使用以下命令找出系统上的实际计时器源:

$ ls /sys/devices/system/clocksource/clocksource0/

$ cat /sys/devices/system/clocksource/clocksource0/*

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

https://stackoverflow.com/questions/7646067

复制
相关文章

相似问题

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