【问题标题】:CPU profiling a Cocoa app in the field在现场对 Cocoa 应用程序进行 CPU 分析
【发布时间】:2010-08-09 20:54:53
【问题描述】:

我有一位用户抱怨我的应用在本应处于空闲状态时占用了大量 CPU 时间。这是 Mac OS Leopard 上的 Cocoa 应用程序。我想做的是让后台线程定期抓取主线程的堆栈跟踪并记录它们。或者,如果我可以让他运行一个命令行程序来获取所有线程的堆栈(或者更好的是,一个带有 CPU 分析信息的调用图),他可以这样做并将结果发送给我。我知道 XCode 内置了 CPU 分析,但是这个问题只能在用户的机器上重现,所以 XCode 不是一个选项(我不想让他安装它)。

我找不到可以在 OSX 上转储堆栈跟踪的命令行工具,也找不到用于访问其他线程堆栈的 API。我想 GDB 可以做到,但这很难向用户解释。

【问题讨论】:

    标签: macos profiling


    【解决方案1】:

    告诉您的用户启动活动监视器(在 /Applications/Utilities 中)。在活动监视器中,您的用户可以选择与您的应用程序对应的行,然后按工具栏中的“示例”按钮。这将对您的应用进行 10 秒的采样。然后他可以将其保存到磁盘并将文件通过电子邮件发送给您。

    编辑:如果您想要这个的命令行版本,请查看 /usr/bin/sample。它可以有效地做同样的事情,但最终用户应该更容易使用 Activity Monitor。

    【讨论】:

    • 太完美了。谢谢,凯文!
    猜你喜欢
    • 1970-01-01
    • 2019-01-12
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多