3

我正在开发一个代码可以追溯到 10.4 的分形渲染应用程序。它使用 NSThreads 来管理渲染线程以计算分形。

直到最近,它还支持回到 10.4 的操作系统,所以我什至无法升级它以使用 NSOperationQueues。

该应用程序 FractalWorks 现已在 Mac App Store 中提供,其最低操作系统要求为 10.6.6。因此,我们放弃了对旧操作系统的支持,并将返回并重新进行渲染以使用 NSOperationQueues 或 GCD。

同时,我想在新发布的 Lion 中启动并干净地运行它。具体来说,我想摆脱 10.7 中新弃用的长列表调用。第一次通过将是一个准系统升级。

该应用程序当前使用 MPProcessors 方法来确定系统上的核心数量,因此它可以为每个核心创建一个渲染线程。它工作正常,MPProcessors 甚至允许在 i5/i7 上使用超线程,并让程序创建与内核一样多的渲染线程。

我需要一个现代调用,它可以让我查询系统的逻辑内核数量,就像 MPProcessors 现在所做的那样。文档只是说该方法已被弃用,而没有提供替代方法。什么是替代方案?(不要告诉我 GCD/NSOperationQueues。我知道这是要走的路,但这是比我现在准备承担的更大的工作。)

提前致谢,

Duncan Champney WareTo

4

1 回答 1

5

在可可中:[NSProcessInfo processInfo].processorCount

在 BSD 语言中:sysctlbyname("hw.ncpu", ...)

使用完形:Gestalt(gestaltCountOfCPUs, &count);

于 2011-07-22T15:05:35.553 回答