c - 如何使用Windows 7中的所有内核?

标签 c windows-7 multicore

我不确定这是否属于 Stackoverflow 或 super 用户,但我想我会在这里问。

我有一个用 C 编写的基于控制台的应用程序,目前需要大约一个小时才能在 Windows 7 64 位操作系统中终止。任务管理器报告应用程序仅使用了可用 CPU 的 25%。我想通过增加 CPU 使用率来减少运行时间。

有没有办法让应用程序使用所有四个内核(笔记本电脑有 Core i5)而不是一个?我假设任务管理器报告 25%,因为只有一个核心分配给程序。

最佳答案

如果不将应用重写为多线程,不,您无法更改应用的行为。 您唯一可以做的是,如果该应用程序可以处理输入数据范围,那么您可以启动 4 个具有不同输入数据范围的应用程序实例进行处理,并在完成后合并结果。

Imagine rendering a 3D animation and the renderer is single threaded, but you can specify start and end frames. You have 100 frames to render you would start 4 instances, and specify start and end frame ranges 0 - 25, 26 - 50, 51 - 75, 76 - 100. Then you would combine all the outputs to your final movie file.

关于c - 如何使用Windows 7中的所有内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055696/

相关文章:

c - 在C程序中解析XML文件中的特定元素

c++ - 尝试理解传递给函数的参数(如果涉及一些算术运算)的评估

windows-7 - Windows 7 文件扩展名关联

windows - 用IE7测试网站

.net - Stopwatch.GetTimestamp() 替代方案在多个处理器上是安全的

c - 如何使用合并排序对外部排序中的运行进行排序

c - 求二维数组中每一列的平均值

multithreading - R system()进程始终使用相同的CPU,而不是多线程/多核

mysql - 如何将 MySQL 设置为 Rails 3 中的默认数据库?

c++ - 如何在不同内核之间正确共享运行时创建的多态数据?嵌入式C++