Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 任何应用程序(chrome、flash等)如何获得比系统时间分辨率更好的时间分辨率?_Javascript_Flash_Google Chrome_Timer - Fatal编程技术网

Javascript 任何应用程序(chrome、flash等)如何获得比系统时间分辨率更好的时间分辨率?

Javascript 任何应用程序(chrome、flash等)如何获得比系统时间分辨率更好的时间分辨率?,javascript,flash,google-chrome,timer,Javascript,Flash,Google Chrome,Timer,微软科技网网站上的这篇文章提供了一个exe,用于计算windows计算机的最小时间分辨率-这应该是该计算机上任何应用程序可用的最小“刻度”: 在我的当前设备上运行此应用程序的结果是15.625毫秒。我还对Internet Explorer进行了测试,并从Date()javascript函数中获得了完全相同的分辨率 令人困惑的是,我在IE上运行的同一个测试为谷歌的Chrome浏览器(分辨率为1ms)和在IE上运行的flash电影(分辨率为1ms)提供了更高的分辨率。有人能解释一下任何应用程序是如

微软科技网网站上的这篇文章提供了一个
exe
,用于计算windows计算机的最小时间分辨率-这应该是该计算机上任何应用程序可用的最小“刻度”:

在我的当前设备上运行此应用程序的结果是15.625毫秒。我还对Internet Explorer进行了测试,并从Date()javascript函数中获得了完全相同的分辨率

令人困惑的是,我在IE上运行的同一个测试为谷歌的Chrome浏览器(分辨率为1ms)和在IE上运行的flash电影(分辨率为1ms)提供了更高的分辨率。有人能解释一下任何应用程序是如何获得比机器时钟更好的时钟分辨率的吗?如果是这样的话,除了Chrome(不使用flash)之外,还有什么方法可以让我在其他浏览器中获得始终如一的更好的分辨率

下面的第一个答案引出了另外两个问题:

  • 多媒体定时器是如何工作的 系统时钟滴答声之间的时间。我 将系统时钟想象为 指针滴答作响的模拟表, 每个刻度为15毫秒。时间过得怎么样 测量的滴答声之间
  • 有多媒体定时器可供选择吗 浏览器,尤其是因特网 探索者我可以用C访问一个吗# 或Javascript,而无需推送 软件到用户的 浏览器/机器

  • 使用QueryPerformanceCounter,您可以缩短到1毫秒,甚至更长时间

    另见

    编辑:新子问题的部分答案

    在Windows 3和95体系结构上,系统时间分辨率约为15毫秒。在NT(和后续设备)上,您可以从硬件抽象层(HAL)获得更好的分辨率。这篇由陈雷蒙撰写的文章可能会给你一些额外的见解


    至于浏览器,我不知道它们在定时器中使用了什么,也不知道它们如何与操作系统交互。

    使用QueryPerformanceCounter,您可以使用1毫秒甚至更长的时间

    另见

    编辑:新子问题的部分答案

    在Windows 3和95体系结构上,系统时间分辨率约为15毫秒。在NT(和后续设备)上,您可以从硬件抽象层(HAL)获得更好的分辨率。这篇由陈雷蒙撰写的文章可能会给你一些额外的见解

    至于浏览器,我不知道它们在使用什么定时器,以及它们如何与操作系统交互。

    处理器上的以总线速度运行,并且有一个定时器。他们可能正在使用该时间而不是系统时间。(或者他们可能只是给出了一些没有的精确性。)

    这提到了将其用作计时器

    (也可能是他们正在使用某些性能计数器。实际上,这似乎更可能,因为需要一个设备驱动程序来编程APIC。)

    处理器上的以总线速度运行,并且有一个计时器。他们可能正在使用该时间而不是系统时间。(或者他们可能只是给出了一些没有的精确性。)

    这提到了将其用作计时器


    (这也可能是因为他们正在使用某些性能计数器。这实际上似乎更可能,因为需要一个设备驱动程序来编程APIC。)

    看看timeBeginPeriod API。来自MSDN:“此函数影响全局Windows设置。Windows使用任何进程请求的最低值(即最高分辨率)。”

    (Markdown不喜欢URL中的parens)


    请参阅您发布的链接中引用的“Windows NT内部高分辨率计时器”。

    查看timeBeginPeriod API。来自MSDN:“此函数影响全局Windows设置。Windows使用任何进程请求的最低值(即最高分辨率)。”

    (Markdown不喜欢URL中的parens)


    请参阅您发布的链接中引用的“Windows NT内部高分辨率计时器”。

    有趣。这会导致额外的问题:不幸的是,vista之前的设置是全局的(例如,系统中的所有计时器都会变得更高分辨率,这可能会导致问题);它对电源使用(尽管我不知道这在多大程度上取决于操作系统)也有很大的影响。这会导致额外的问题:不幸的是,vista之前的设置是全局的(例如,系统中的所有计时器都会变得更高分辨率,这可能会导致问题);它对电源的使用也有很大的影响(尽管我不知道这在多大程度上取决于操作系统),每个使用它们的应用程序都可以使用它们。阅读docs.David-如果有一个分辨率优于Date()的Javascript计时器,它不清楚(正如您所建议的)它是什么,因此问题是每个使用它们的应用程序都可以使用它们。阅读docs.David-如果有分辨率优于Date()的Javascript计时器,它不清楚(正如您所建议的)它是什么,因此在URL中,您可以安全地将开始部分替换为%28,将结束部分替换为%29。在URL中,您可以安全地用%28替换开始部分,用%29替换结束部分。这是围绕降价烦恼而工作的。