Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >高分辨率性能计数器及其存在与.NET秒表相关的解释?

高分辨率性能计数器及其存在与.NET秒表相关的解释?
EN

Stack Overflow用户
提问于 2011-08-08 10:23:05
回答 2查看 2.9K关注 0票数 10

在静态Stopwatch构造函数中,我们可以看到以下代码,基本检查是否存在高分辨率性能计数器。

代码语言:javascript
运行
AI代码解释
复制
static Stopwatch()
{
    if (!SafeNativeMethods.QueryPerformanceFrequency(out Frequency))
    {
        IsHighResolution = false;
        Frequency = 0x989680L;
        tickFrequency = 1.0;
    }
    else
    {
        IsHighResolution = true;
        tickFrequency = 10000000.0;
        tickFrequency /= (double) Frequency;
    }
}

在MSDN上,它提到了QueryPerformanceFrequency

检索高分辨率性能计数器的频率(如果存在)。

但是,它究竟是什么时候存在的,还很不清楚?我怀疑它通常存在于现有的机器上,但它到底在什么时候存在呢?

这很有趣,因为当Stopwatch不存在时,它就变成了DateTime.UtcNow属性的包装器。

EN

回答 2

Stack Overflow用户

发布于 2013-03-22 12:54:23

计时器和秒表是有区别的,混淆两者会导致错误的假设。不幸的是,定时器这个词经常被用来指多个事物。

任何运行Windows 2000或更高版本的机器都有一个高频计时器。我从来没有遇到过一台后来运行Windows 2000的计算机,它没有这样的功能。

这是高频计时器。还有计时器: Windows或.NET组件。这些计时器不是用于保持时间或测量时间,而是用于定期执行操作。Windows计时器对象具有1ms的分辨率,并且在计算机不涉及CPU密集型操作时非常可靠。.NET定时器对象被限制在大约15 ms的分辨率。您可以通过使用P/Invoke直接与Windows对象进行交互来解决这个问题,但这并不经常是必要的。

.NET秒表类是基于高频定时器的。通常,Start查询性能计数器并存储值。当您使用Stop时,它会再次查询性能计数器。经过的时间是这两个值的简单减法。你可以从秒表中获得比微秒分辨率更高的分辨率。

事实上,您可以使用一个Stopwatch,它有一个繁忙的等待循环,可以给出亚毫秒的分辨率。我怀疑你是否能用它获得亚微秒分辨率。

重要的是要明白,虽然计时器不可靠超过1毫秒,秒表,这是经过的时间,是更精确的。您可能可以信任秒表中的微秒级运行时间测量。除此之外,我不会指望它。

票数 5
EN

Stack Overflow用户

发布于 2011-08-08 11:56:49

系统时间的实际分辨率大约是毫秒(尽管声称它是毫秒的十分之一,但我从未见过一个工作站可靠地提供了该分辨率)。

但是,您可以使用其他硬件(如时间代码读取器),它提供的分辨率可降至纳秒。这些通常用于工业控制系统,以配合IPC(工业PC机)同步DAQ硬件。您可以在http://www.spectracomcorp.com/ProductsServices/TimingSynchronization/BuslevelTiming/PCIexpressslotcards/tabid/1296/Default.aspx中看到一个具有100 ns分辨率的示例。

普通工作站几乎总是使用高分辨率计数器,但实际上,如果没有额外的硬件,分辨率将不是你所期望的(微秒或纳米秒)。

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

https://stackoverflow.com/questions/6986701

复制
相关文章
android attrs获取_关于Android attrs 自定义属性的说明
写个自定义控件时经常要自定义一些自己的属性,平时用的都是那几个,今天就顺便一起总结一下这个东东吧~
全栈程序员站长
2022/11/02
1K0
python attrs_Python attrs作用是什么?
class CommentSerializer(serializers.Serializer):
全栈程序员站长
2022/11/02
3970
android中怎么在View构造的attrs中拿到android给的属性以及attrs属性介绍[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/02
1.3K0
android 参数 attrs.xml,android – 定义自定义attrs
传统的方法充满了样板代码和笨拙的资源处理。 这就是我制作Spyglass框架的原因。 为了演示它是如何工作的,这里有一个示例,展示如何创建一个显示字符串标题的自定义视图。
全栈程序员站长
2022/09/27
5450
Unable to find chromedriver...AttributeError: ‘NoneType‘ object has no attribute ‘get‘
Unable to find chromedriver…AttributeError: ‘NoneType’ object has no attribute ‘get’
谙忆
2021/01/19
7910
android 自定义控件 attrs,android 使用attrs自定义控件
1、在values下新建一个attrs.xml的资源文件(my_attrs.xml)
全栈程序员站长
2022/11/02
8440
vue $attrs的使用
在上面提过,如果给子组件传递的数据,子组件不使用props接收,那么这些数据将作为子组件的特性,这些特性绑定在组件的HTML根元素上,在vue2.40版本之后,可以通过inheritAttrs = false 来控制这些特性是否显示在dom元素上 如:案例中父组件给子组件传递的row和isShow,子组件没有使用props接收,这个2个数据直接作为HTML的特殊属性。子组件使用inheritAttrs = true,那么特性显示在dom上,如果设置为false,那么特性不显示在dom上
全栈程序员站长
2022/11/02
1.4K0
vue $attrs的使用
vue组件通讯之$attrs
我们会遇到这样的场景,比如对element-ui的el-table组件进行二次开发,但是el-table组件有很多属性比如控制高度的height,传入数据的data还有border、size、fit等一个个的去传显然不大现实,这个使用用$attrs处理起来就会特别优雅。
全栈程序员站长
2022/11/02
3850
python attrs_一直比较疑惑python中关于attrs的问题
links = getLinks(“/wiki/Python_(programming_language)”)
全栈程序员站长
2022/11/02
4290
Vue - 组件通信之$attrs、$listeners
vue通信手段有很多种,props/emit、vuex、event bus、provide/inject 等。还有一种通信方式,那就是 $attrs 和 $listeners,之前早就听说这两个api,趁着有空来补补。这种方式挺优雅,使用起来也不赖。下面例子都会通过父、子、孙子,三者的关系来说明使用方式。
WahFung
2020/08/22
1K0
AttributeError: NoneType object has no attribute‘’
AttributeError: ‘NoneType’ object has no attribute ‘text’
狼啸风云
2020/10/09
3.5K0
vue的$attrs_vue获取list集合中的对象
原文网址:Vue–attrs, listeners–使用/教程/实例_IT利刃出鞘的博客-CSDN博客
全栈程序员站长
2022/09/27
5.2K0
Python爬虫之携程网笔记一
前两天看了许久BeautifulSoap,想找个网站挑战一下,刚好想到之前曾经爬过携程网,想爬一下酒店信息试一下,没想到刚尝试就碰到了钉子。
python与大数据分析
2022/03/11
4630
AttributeError: 'NoneType' object has no attribute 'append'
附加列表元素时发生的错误,去掉赋值,把第四十行改为re_bb_area.append(proportion)
狼啸风云
2019/05/15
2.7K0
AttributeError: 'NoneType' object has no attribute 'append'
Vue 新增的$attrs与$listeners的详解
inheritAttrs:默认值true,继承所有的父组件属性(除props的特定绑定)作为普通的HTML特性应用在子组件的根元素上,如果你不希望组件的根元素继承特性设置inheritAttrs: false,但是class属性会继承(简单的说,inheritAttrs:true 继承除props之外的所有属性;inheritAttrs:false 只继承class属性)
tianyawhl
2019/04/04
2.7K0
Vue中 $attrs、$listeners 详解及使用
传送门:Vue中 子组件向父组件传值 及 .sync 修饰符 详解 传送门:Vue中 状态管理器(vuex)详解及应用场景 传送门:Vue中 事件总线(eventBus)详解及使用 传送门:Vue中 provide、inject 详解及使用
全栈程序员站长
2022/11/02
1.6K0
Python3网络爬虫(七):使用Beautiful Soup爬取小说
本文总结了一些常见的网络爬虫和反爬虫技术,并介绍了一种基于Python的爬虫程序。该爬虫程序可以爬取指定网站的文章内容,并支持对某些网站的反爬虫策略。同时,还介绍了一种基于Web的爬虫程序,该程序可以爬取网站的文章列表,并支持对某些网站的反爬虫策略。
Jack_Cui
2018/01/08
4.5K0
Python3网络爬虫(七):使用Beautiful Soup爬取小说
在 Vue 中,使用 $attrs 构建高级组件
这节课,我们来看下 Vue3 中的 $attrs 属性。首先,我们会介绍它的用途以及它的实现与 Vue2 有哪些不两同点,并通过事例来加深对它的理解。
前端小智@大迁世界
2022/10/27
2.5K0
在 Vue 中,使用 $attrs 构建高级组件
Vue中的$attrs和$listener的使用
疫情之前,在家关了这么久,也没怎么更新,最近在看大佬的项目,学习下新的思路。之前项目上,父子组件传递数据,都是用props去接收和this.emit触发父组件方法。这次我们用attrs和
青年码农
2022/05/31
1.2K0
Vue中的$attrs和$listener的使用
每天一道 python 面试题 - Python中的元类(metaclass)
虽然在Python中您可以对元类使用任意可调用对象(例如Jerub演示),但是更好的方法是使其成为实际的类。type是Python中常见的元类。type它本身是一个类,并且是它自己的类型。您将无法type纯粹使用Python 重新创建类似的东西,但是Python有点作弊。要在Python中创建自己的元类,您实际上只想将其子类化type。
公众号---人生代码
2020/05/16
9420

相似问题

AspectJ、Spring AOP和JBoss AOP在异常处理方面的比较

11

我们可以将AOP方面应用于多个maven项目吗?

12

AOP +同步

12

Python中面向方面编程(AOP)

24

spring中的AOP方面警告

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文