如何在C#中最大化我的应用程序使用的功率?

时间:2009-04-04 01:22:35

标签: c# process cpu maximize

因为我已经创建了难以计算的应用程序 - >很多工作要做,而不是非常复杂的计算 - >它需要很长时间才能完成,并且该过程仅占CPU的45%。我可以以某种方式最大化它吗?:达到90%?

4 个答案:

答案 0 :(得分:7)

如果你有一台双核机器(我猜你这么做了),你希望在一个线程中获得的最多就是50%的CPU使用率。

要获得90%的CPU使用率,您很可能需要对计算进行处理。这可能非常简单,也可能非常困难,具体取决于您要线程化的算法的性质。

如果您可以将工作集分成多个组,我建议您考虑使用ThreadPool,或者甚至可能使用Task Parallel Library,具体取决于您的发布时间。

答案 1 :(得分:2)

您很可能拥有双核CPU,如果您的应用是单线程的,它将使用的最大CPU为50%(所有一个核心)。为了更好地使用,您需要使用多个线程,但这也意味着要找出一些方法将计算分解为多个部分,以便它们可以由多个核心处理。

答案 2 :(得分:2)

检查一下:

  1. 你在计算时是从磁盘读取的吗?如果是这样,请在计算之前尝试读取内存中的数据。
  2. 计算时是否将结果写入磁盘或控制台?如果是这样,请尝试推迟写作,直到计算结束,然后再写。
  3. 如果您有多核处理器,请尽可能尝试创建多线程算法。

答案 3 :(得分:1)

如果你只是有一个简单的循环进行计算,那么很可能你的计算机有两个核心/处理器。单线程应用程序最多只能使用50%的CPU。

您需要多个线程才能在多核计算机上使用整个CPU。