Mac OS X 上的高性能代码
Posted
技术标签:
【中文标题】Mac OS X 上的高性能代码【英文标题】:High performance code on Mac OS X 【发布时间】:2012-01-29 03:47:02 【问题描述】:我想知道在 OS X 上分析应用程序代码的最佳方法。我有一个纳秒分辨率计时器,经过一些基线测试后,我似乎遇到了大约 45 微(macbook 2ghz)的内核系统调用上下文切换core2 双核模型)。
我注意到,如果我让我的应用程序不时循环,我可以获得大约 25,000-50,000 微的调度上下文切换。我正在测试一些算法,我想限制它的影响。
我真正想要的是能够设置一个任务的处理器亲和性,也可以将主线程优先级设置为实时,这不是一件坏事,因为有一天这台 Macbook 可能会被用作低延迟控制器为了某件事。关于如何在雪豹/XCode 上执行此操作的任何想法?
【问题讨论】:
如果您想要一个有保证的低延迟控制器设备,个人电脑将无法胜任。如果您宁愿避免代价高昂的上下文切换,则通常使用类似microcontroller(例如programmable logic controller)的东西。 您首先要从应用程序的主线程中分离出实时/高优先级程序。主线程上发生的所有事情肯定不是高优先级。 (既然您说“应用程序”,我假设您指的是带有 ui 的程序,而不是实用程序或代理之类的东西) 如果您尝试分析非常快的代码部分,请考虑将它们放在一个循环中并重复操作 1000 多次并进行测量。至少我是这样做的。 【参考方案1】:您可以在 Xcode 中使用 Shark。还有 DTrace。
【讨论】:
以上是关于Mac OS X 上的高性能代码的主要内容,如果未能解决你的问题,请参考以下文章
OpenAL 是不是支持 Mac OS X 上的 5.1 输出?