当前位置: 首页 > 面试题库 >

将jiffies转换为毫秒

徐知
2023-03-14
问题内容

如何在Linux中手动将抖动转换为毫秒,反之亦然?我知道内核2.6具有此功能,但是我正在研究2.4(家庭作业),尽管我看了一下代码,但它使用了许多宏常量,我不知道它们是否在2.4中定义。


问题答案:

如先前的回答所述,jiffies增量的速率是固定的。

为接受的函数指定时间的标准方法jiffies是使用常数HZ

那是Hertz的缩写,或每秒的刻度数。在计时器滴答设置为1ms的系统上,HZ = 1000。一些发行版或体系结构可能使用另一个数字(以前是100)。

指定jiffies函数计数的标准方法是使用HZ,如下所示:

schedule_timeout(HZ / 10);  /* Timeout after 1/10 second */

在最简单的情况下,这可以正常工作。

2*HZ     /* 2 seconds in jiffies */
HZ       /* 1 second in jiffies */
foo * HZ /* foo seconds in jiffies */
HZ/10    /* 100 milliseconds in jiffies */
HZ/100   /* 10 milliseconds in jiffies */
bar*HZ/1000 /* bar milliseconds in jiffies */

最后两个有一个问题,但是,在具有10
ms计时器滴答的系统上,该HZ/100值为1,并且精度开始受到影响。您可能会在0.0001到1.999之间的任何时间间隔内获得延迟(本质上是0-2毫秒)。如果您尝试HZ/200在10ms的滴答系统上使用,则整数除法会给您0个捷夫!

因此,经验法则是,请小心使用HZ来获取微小值(接近1个吉菲)。

要进行另一种转换,可以使用:

jiffies / HZ          /* jiffies to seconds */
jiffies * 1000 / HZ   /* jiffies to milliseconds */

您不应该期望比毫秒精度更好的东西。



 类似资料:
  • 问题内容: 我有一个等于日期的字符串,表示为自Unix纪元以来的毫秒数。 我正在尝试将其输出到dmY。 我得到的字符串是“ 1227643821310”,并被告知结果应等于 2-12-2008 ,但我不断得到的结果是 25-11-2008 我的代码如下: 关于为什么会这样的任何想法? 问题答案: 您已经做对了,1227643821根本不是2008年12月12日,的确是2008年11月25日。

  • 问题内容: 我对当前UTC时间以毫秒为单位不感兴趣,也无需弄乱时区。我的原始日期已经存储为UTC时间戳。 我在UTC时间“ 2012-06-14 05:01:25”中存储了一个日期。我对日期时间不感兴趣,但对日期部分感兴趣。因此,在用Java检索日期并排除小时,分钟和秒之后,我剩下的是“ 2012-06-14”。 如何将其转换为UTC毫秒? 问题答案: 编辑:我错过了“忽略一天中的时间”部分。它现

  • 问题内容: 如何获得日期的毫秒时间?我有以下代码。 此变量beginupd包含格式 2011年10月12日星期三11:55:03 GMT + 05:30 现在如何在Long数据类型中将此格式转换为毫秒时间?非常感谢您的任何帮助,并在此先感谢… 问题答案: JavaDoc指出: 返回自此Date对象表示的自格林尼治标准时间1970年1月1日00:00:00以来的毫秒数。

  • 问题内容: 我想将毫秒转换为秒(例如,将1500ms转换为1.5s,或将500ms转换为0.5s)。 并不是最好的方法:我正在寻找一种从除法运算中获取余数的方法,因此我可以简单地添加余数。 问题答案: 当然,您只需要: 无需分别手动执行这两个部分- 您只需要浮点运算即可(使用字面量)即可。(我假设您的值是某种形式的整数。) 请注意,和一样,您可能无法准确表示结果。如果您想 精确地 将100ms表示

  • 问题内容: 这是我的尝试 因此,当我尝试类似的值时3600000ms,我得到01:59:00,这是错误的,因为它应该是01:00:00。显然我的逻辑有问题,但是目前,我看不出它是什么! 有人可以帮忙吗? 编辑 固定它。这是格式化毫秒hh:mm:ss格式的正确方法 问题是这样的TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(milli

  • 问题内容: 我需要将毫秒值85605304.3587转换为类似0d 18h 21m的值。不知道如何启动它,是否像C#中的SQL中有类似TimeSpan的东西? 问题答案: 您可以显式进行计算。我认为是这样: 注意:某些数据库使用代替。