28

Shark 是 Apple 的分析器,可让您配置自定义性能计数器,但 OSX Mountain Lion 不再支持它,因为它无法运行 32 位内核。Instruments.app,Apple 的 Shark 替代品,似乎不支持读取性能计数器,例如 L1 缓存命中/未命中**。无论如何在 OS X 上实际设置和读取性能计数器?即使没有应用程序,是否有一些用户级 API 可以做到这一点?

**Instruments.app 似乎确实有一个性能计数器界面,但在我的 Retina MacBook Pro 上,PM 事件窗口没有列出任何事件,并显示“设备:未知”。Instruments 还有其他替代品吗?

4

1 回答 1

41

是的。它在那里,但很难找到并且使用起来很笨拙(ver.4.5)。

  • 发射仪器。
  • 巫师迎接你
  • 为 OS X 选择“空白”模板
  • cmd+L显示库
  • 将“Counters”工具添加到您的 Instruments 文档中
  • cmd+ shf+ P-- 您将看到 PM Events 浮动窗口。
  • 让我们评估“执行的划分操作”——将“执行的划分操作”添加到 PM 事件窗口的搜索字段。
  • 现在将“已执行的划分操作”的“状态”设置为“可见”
  • 现在回到主文档窗口,按cmd+I显示“计数器”工具的信息弹出框。
  • 按下+按钮
  • 将新计数器的事件设置为“执行除法操作”
  • 开始采样...
  • 结束采样...

您将在 Instruments 的表格列中看到结果。当然,你可以记录很多事件——所以找到你感兴趣的 L1 缓存事件并添加它们而不是分割。

还要为系统冻结做好准备(在写这篇文章时发生了一次)。

于 2012-10-25T19:33:15.050 回答