2012-01-29 153 views
4

我想知道在OS X上配置应用程序代码的最佳方式。我有一个纳秒级的解决方案计时器,它似乎在一些基线测试后,我正在执行内核系统调用上下文切换约45微(macbook 2ghz core2二人模型)。Mac OS X上的高性能代码

我注意到,如果我让我的应用程序每隔一段时间循环一次,然后我可以获得大约25,000-50,000微秒的调度上下文切换。我正在测试一些算法,我想限制这种影响。

我真正想要的是能够设置任务的处理器亲和力,并且将主线程优先级设置为实时,这不是一件坏事,因为有一天这款Macbook可能会被用作低延迟控制器的东西。关于如何在snow leopard/XCode上做到这一点的任何想法?

+0

如果您想要有保证的低延迟控制器设备,个人电脑不会削减它。像[微控制器](http://en.wikipedia.org/wiki/Microcontroller)(例如[可编程逻辑控制器](http://en.wikipedia.org/wiki/Programmable_logic_controller))就是通常用于这种情况,如果你宁愿避免昂贵的上下文切换。 – 2012-01-29 03:57:02

+2

您可以从应用程序主线程中分离实时/高优先级程序开始。所有发生在主线程上的*当然不是高优先级。 (因为你说的是​​“应用程序”,我假设你指的是一个带有用户界面的程序,而不是像一个实用程序或代理程序) – justin 2012-01-29 04:01:44

+0

如果你试图分析代码中非常快速的部分,可以考虑将它们放在一个循环中,重复操作1000次以上并测量。至少我是这么做的。 – demorge 2012-01-29 08:33:09

回答

1

您可以在Xcode中使用Shark。还有DTrace。