2

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

4

4 回答 4

7

如果你有一台双核机器(我猜你有),你最希望在单线程中获得 50% 的 CPU 使用率。

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

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

于 2009-04-04T01:24:17.043 回答
2

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

于 2009-04-04T01:25:30.487 回答
2

检查这个:

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

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

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

于 2009-04-04T01:26:08.723 回答