没有睡眠的 CPU 空闲循环

Ben*_*iss 3 windows assembly

我现在正在学习 WIN32 ASM,我想知道是否有类似“空闲”无限循环的东西根本不消耗任何资源。基本上我需要一个正在运行的过程来进行实验,如下所示:

loop:
  ; alternative to sleep...
  jmp loop
Run Code Online (Sandbox Code Playgroud)

是否有可能使该过程空闲的东西?

Dav*_*rtz 6

你不能两全其美。您可以消耗 CPU,也可以让它做其他事情。正如 Vlad Lazarenko 建议的rep; nop;那样pause,您可以使用(也称为)来节省电力并避免剥夺其他内核的资源。但是如果你循环而不将核心交给另一个进程,至少那个虚拟核心不能做任何其他事情。

  • @BenjaminWeiss:除了运行代码之外,您是否希望核心执行其他操作?或不?没有第三种选择。如果该核心正在运行您的代码,则它无法执行任何其他操作。因此使用了您的四个核心之一,25%。 (3认同)