32位应用程序是否使用多个内核/处理器?



用c++开发的32位应用程序,运行在具有4个或更多核的多台机器上。我正在分析应用程序的内核/处理器消耗。我想问,32位应用程序可以使用多个Core吗?如果是,有办法检查吗?

32/64位是应用程序用来寻址其虚拟内存的位数。应用程序使用多少核与这个数字完全无关。

通常,任何应用程序都将使用与其活动线程相同数量的可用内核(正如Hans Passant正确指出的那样,一些线程可能被阻塞等待其他线程,IO或类似的,在这种情况下,它们不会被调度到任何内核)。

一个简单的检查是在任务管理器中查看进程的CPU使用情况:如果进程使用的CPU少于100% / number_of_cores,那么它实际上是单线程的。如果它使用更多,这意味着它运行在多个核心上。您的目标应该是通过适当使用多线程技术使其利用可用CPU的100%(同样,这与32/64位问题无关)。

最新更新