【问题标题】:High performance code on Mac OS XMac 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 多次并进行测量。至少我是这样做的。

标签: c++ profiling latency


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 2010-11-07
    • 2010-12-06
    相关资源
    最近更新 更多