通过一段代码打爆你的 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 100% 了~~
More
你还有别的实现方案吗?欢迎补充~~
直接系统运行这个示例的话可能会影响别的程序运行,也可以尝试使用容器技术,限制 CPU 去运行,可以自己尝试一下哈~
References
https://github.com/WeihanLi/SamplesInPractice/blob/master/StupidSamples/FullCpuSample.cs