gpt4 book ai didi

c# - 是否可以 sleep 一定的周期

转载 作者:行者123 更新时间:2023-12-02 21:35:36 27 4
gpt4 key购买 nike

我想知道是否有可能让线程休眠一定数量的 CPU 周期?

我想过只插入“nop”,但我不确定它们是否得到优化,我希望有一个高级解决方案。

有什么好东西可以推荐给我吗?如果不是,我可以阻止手动插入的“nop”得到优化而不禁用所有优化吗?亲切的问候

卢卡斯·哈弗利格

编辑:另一个问题:是否可以测量某个代码片段执行期间所需的周期数?

最佳答案

简而言之,不,因为周期和指令之间不存在 1:1 映射(事实上,许多指令是每个周期执行的),并且当您有诸如指令流水线、分支预测和推测之类的东西时,执行它显然变得不可预测。

另一个原因是,没有基于 CPU 周期(或指令)的中断,而是基于硬件定时器中断或操作系统调度程序在给定当前时间轮询当前线程队列的情况下线程休眠。

最后,即使在硬件中可行,Windows API(.NET 内部使用的)除了以毫秒为单位的时间跨度之外也不会公开任何其他休眠参数(无论如何,一毫秒可能是数万个 CPU 周期)。

在 C# 中,这个问题相当荒谬,因为代码将基于当前平台进行 JIT 编译,这意味着您无法预测给定代码块所使用的硬件指令,即使如此,也有可能您的 CIL 可能由解释器执行,而不是 JIT 执行,以减少启动延迟,这会导致 CPU 指令计数大幅下降。

关于c# - 是否可以 sleep 一定的周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21451913/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com