• 打爆你的 CPU


    打爆你的 CPU

    Intro

    这是这个煞笔代码系列的最后一篇——Full CPU,相对来说也比前面三个简单一些,没有那么多的知识点。

    今天来尝试写一段代码,把 CPU 打满,让所有处理器的 CPU 使用率达到 100%,Let's do it.

    如何提高 CPU 使用率

    想要提高 CPU 的使用率就是要让 CPU 一直在工作,单位时间内,CPU 做的工作越多 CPU 使用率越高,所以我们要让 CPU 处于高度饱和的工作状态,让 CPU 一直在工作,这样就会比较容易达到比较高的 CPU 使用率

    Show me the code

    废话不说,直接上代码:

    public static void Test()
    {
        Parallel.For(0,
            Environment.ProcessorCount,
            new ParallelOptions()
            {
                MaxDegreeOfParallelism = Environment.ProcessorCount
            },
            i =>
            {
                while (true)
                {
                }
            });
    }
    

    为了比较充分的利用所有的处理器,使用 Parallel 来并行执行,最大的并发度设置为处理器的个数,避免并发度高的时候造成线程上下文的切换造成损失,方法体里则是用了一个死循环,让 CPU 一直在空转,一直在工作。

    来看执行的效果,使用任务管理器中的性能页查看 CPU 使用率数据

    cpu stats

    可以看到还算是比较理想的达到了 CPU 100% 了~~

    More

    你还有别的实现方案吗?欢迎补充~~

    直接系统运行这个示例的话可能会影响别的程序运行,也可以尝试使用容器技术,限制 CPU 去运行,可以自己尝试一下哈~

    References

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    线程池原理分析
    强引用-软引用-弱引用
    并发编程之多线程
    linux关于获取时间的几个函数
    gdb安装和使用
    c++四种显式类型转换
    ARP协议
    Vmware 共享文件夹不显示的问题
    gdb基本使用
    动态二维数组实现
  • 原文地址:https://www.cnblogs.com/weihanli/p/implement-full-cpu.html
Copyright © 2020-2023  润新知