当我使用空循环运行一个简单的c#程序时,我的cpu使用率从8-12%上升到24-20%,核心使用模式几乎相同。
static void Main(string[] args)
{
bool flag = true;
while(flag)
{
}
}
有人可以解释一下这种行为。我预计此时核心使用率将达到100%。
更新:我使用八核机器和总CPU使用量(总计所有核心使用量)达到25%。每个核心(留下第一个核心)显示类似的使用模式(大约25%)
答案 0 :(得分:3)
因为它是单线程的。你可能有一个四核CPU。你很可能最大限度地利用单核心。
要完全最大化现代多核CPU,您需要多线程工作负载。此外,如果您的代码太可爱,则必须避免优化。
答案 1 :(得分:2)
由于您的应用程序是单线程的,因此您只使用一个核心。如果它高达25%,我可以猜测运行环境配备了四码处理器。