作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有可能让线程休眠一定数量的 CPU 周期?
我想过只插入“nop”,但我不确定它们是否得到优化,我希望有一个高级解决方案。
有什么好东西可以推荐给我吗?如果不是,我可以阻止手动插入的“nop”得到优化而不禁用所有优化吗?亲切的问候
卢卡斯·哈弗利格
编辑:另一个问题:是否可以测量某个代码片段执行期间所需的周期数?
最佳答案
简而言之,不,因为周期和指令之间不存在 1:1 映射(事实上,许多指令是每个周期执行的),并且当您有诸如指令流水线、分支预测和推测之类的东西时,执行它显然变得不可预测。
另一个原因是,没有基于 CPU 周期(或指令)的中断,而是基于硬件定时器中断或操作系统调度程序在给定当前时间轮询当前线程队列的情况下线程休眠。
最后,即使在硬件中可行,Windows API(.NET 内部使用的)除了以毫秒为单位的时间跨度之外也不会公开任何其他休眠参数(无论如何,一毫秒可能是数万个 CPU 周期)。
在 C# 中,这个问题相当荒谬,因为代码将基于当前平台进行 JIT 编译,这意味着您无法预测给定代码块所使用的硬件指令,即使如此,也有可能您的 CIL 可能由解释器执行,而不是 JIT 执行,以减少启动延迟,这会导致 CPU 指令计数大幅下降。
关于c# - 是否可以 sleep 一定的周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21451913/
我正在尝试开发右边框/Angular 具有特定 Angular (30°) 的表格。我见过一些类似的解决方案,但它们都无法在一定程度上发挥作用。如果我想从 30° 改变到 20°,我不想花太多力气。
我是一名优秀的程序员,十分优秀!