繁体   English   中英

在调试模式下运行Visual Studio控制台应用程序的CPU使用率不会超过50%

[英]Running Visual Studio console application in debug mode consumes no more than 50 percent cpu usage

我有几个C#控制台应用程序,基本上解析内存中的大量数据(LINQ)并将结果输出到文本文件。

现在,忘记写入文本文件一分钟,因为这不是问题发生的地方。

当我在调试模式下运行应用程序时,我永远不会使用超过50%的CPU使用率。 它将解析/按摩数十万条记录,但只能快速运行X并利用50%的CPU(在任务管理器中查看)。

我真的想用100%的CPU来加快处理速度。

有人有任何见解吗?

我正在运行带有Service Pack 3的Windows XP Professional。我安装了带Service Pack 1的Visual Studio 2008 Professional。

谢谢!

编辑:

  • 我已手动将任务管理器中进程的关联设置为双CPU上的单个核心。
  • 有时我可以利用51%或52%的CPU来捕获它。

听起来你有一个双核CPU,你的应用程序是单线程的。

听起来你有一个双核cpu。 设置处理器关联性对于加速程序没有任何作用。 此外,您看到的51/52%是在另一个核心上运行的其他进程,以1-2%加速您的程序在第一个核心上全速运行。

如果您想尝试让程序使用两个内核,请尝试在Parallel Extensions库中查看PLINQ。

并行扩展库

普林克文章

如果您的应用程序仅在一个线程上执行,而您碰巧有双核处理器,则只使用其中一个核心,因此您使用50%的可用处理器能力。

如果你有可能将工作分成逻辑部分并产生处理这些部分的线程,那么你可以使用两个核心。

你有一个两核处理器。 您的应用程序只有一个线程,只能在一个核心上运行。 它利用这个核心100%。 如果您还想使用其他核心,则必须使用更多线程。

正如其他人所说,您的应用程序运行在双核(2)核心CPU的一个核心上。 当您在任务管理器中看到50%时,这意味着运行您的应用程序的核心,即CPU的计算能力的一半,正在以100%运行。

编写软件以利用多核CPU本身就是一门艺术。 请参阅此文章以供讨论。 正如@Alex Moore所说,如果你看到51%或52%,这可能意味着另一个核心正在做1%-2%的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM