gpt4 book ai didi

c# - 是否有可能 sleep 一定数量的周期

转载 作者:行者123 更新时间:2023-12-02 04:38:11 26 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/

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