我正在开发一个分形渲染应用程序,其代码可以追溯到10.4。它使用NSThreads来管理渲染线程以计算分形。
直到最近,它支持操作系统回到10.4,所以我甚至无法升级它以使用NSOperationQueues。
应用程序FractalWorks现已在Mac App商店中提供,其最低操作系统要求为10.6.6。因此,我们放弃了对旧操作系统的支持,并将返回并重新渲染渲染以使用NSOperationQueues或GCD。
与此同时,我想在新发布的Lion中干净利落地运行它。具体来说,我想摆脱10.7中新弃用的长列表调用。第一次通过将是一个简单的升级。
该应用程序当前使用MPProcessors方法来确定系统上的核心数,因此它可以为每个核心创建一个渲染线程。它工作正常,MPProcessors甚至允许在i5 / i7上进行超线程,并让程序创建两倍的渲染线程和核心。
我需要一个现代调用,让我可以在系统中查询逻辑内核的数量,正如MPProcessors现在所做的那样。文档只是说该方法已被弃用,而没有提供替代方法。有什么选择? (并且不要告诉我GCD / NSOperationQueues。我知道这是要走的路,但这比我现在准备承担的工作要大。)
提前致谢,
Duncan Champney WareTo答案 0 :(得分:5)
在可可:[NSProcessInfo processInfo].processorCount
在BSD-ese中:sysctlbyname("hw.ncpu", ...)
使用格式塔:Gestalt(gestaltCountOfCPUs, &count);