【问题标题】:How do I simulate 100% CPU usage?如何模拟 100% 的 CPU 使用率?
【发布时间】:2013-10-23 18:18:34
【问题描述】:

为了模拟 100% 的 CPU 使用率,我在代码中放置了一个无限 while 循环( while (true) { } )。 这似乎使 CPU 使用率飙升至 30%(对于我在没有 while 循环的情况下运行的同一程序,通常为 2%)。 为什么不超过30%?这是双核 Intel i7 处理器。该应用程序是一个简单的控制台应用程序,在 .net 4.0 上运行 c# 代码

 private static void SimulateCPUSpike()
 { 
       while(true) { }
 }

【问题讨论】:

    标签: cpu simulate


    【解决方案1】:

    CPU 使用率是所有个 CPU 内核的百分比。
    如果您的代码只运行一个线程,则它不能占用多个内核。

    您需要为每个内核创建一个单独的线程。 (Environment.ProcessorCount)

    【讨论】:

      【解决方案2】:

      双核 CPU,每核 2 个超线程。因此,您可能期望 1 个线程以 100% 的使用率占用总数的 25%。剩下的 5% 是系统正在做的其他事情。

      即使有 4 个线程,由于调度,您也可能无法获得 100% 的使用率。

      真正的问题是,你为什么想要 100% 的使用率...你想在 CPU 上做牛排吗?

      【讨论】:

      • 好点,我不需要 100%,只需要超过 50%(所以不是牛排,但也许煎鸡蛋......)
      • 借助现代热保护,CPU 可能会限制其电源状态(降低频率),甚至在您的鸡蛋还没煮熟之前很久就关闭。
      【解决方案3】:

      令人惊讶的是,这在 PowerShell 提示符下有效:

      while(1) {Start-Job {while(1){}}}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多