2013-08-03 47 views
2

我有一个正在进行强烈计算的控制台应用程序,需要几个小时才能完成。我可以在特定的时刻运行尽可能多的运行,并且运行速度完全相同。这意味着我的电脑有更快的速度,那为什么不呢?我希望我的电脑能够充分利用其处理能力并将其专用于这一个程序。优化控制台程序

我可以很容易地将一半的工作放在一个程序中,另一半放在另一个工作中,并通过txt文件或其他东西进行通信。有没有什么办法可以让我的速度更快,而不是这样做?任务管理器的优先级不会改变任何内容。例如:

+1

[并行化](https://www.google.com/search?q=并行化) –

+0

一种方法可以创建几个exe文件,每个文件执行一部分计算并同时运行它们。 – user2029077

+0

@ MinimusHeximus“通过将一半工作放在一个程序中,一半工作放在另一个工作中,并让他们通过txt文件或其他东西进行通信,我可以轻松地将时间减半。”我知道,但这对用户来说很烦人。 –

回答

2

那么......总是有多线程: Stack Overflow,例如。

但它总是一个复杂的过程,特别是对于C++。恐怕你必须为你的特定情况谷歌一些教程。

这里有一些:tutorialspoint,codebase,还有更多。有很多方法,由许多不同的libraries实现,并且它们都不被认为是简单的。

+0

#包括真的很容易,已经实施,现在它的运行速度提高了一个数量级(说我必须等6分钟才能接受你的答案) –

+0

@Nicholas Pipitone在那种情况下,我不是垃圾就是它当时还没有实施。要小心 - 这可能会导致意想不到的行为。 – Fenixp

+0

大声笑,也许在我的情况下,它很容易实现。我的程序深深地嵌套在26个循环中,所以我只取得了嵌套的部分,并将它分成四个函数,每个函数都进行了线程化,并在末尾放置了* .join(),并在整个过程中加速。 –