You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

MacOS下与Linux的perf stat等效的性能分析工具是什么?

macOS(M1)下替代Linux perf stat的命令行性能分析工具

如果你需要在M1 MacBook上用原生命令行工具替代perf stat,统计缓存命中率、页错误这类指标,以下几个系统自带工具可以满足需求:

1. taskinfo

这是最接近perf stat使用体验的工具,直接针对单个进程输出性能统计,包括页错误、L1/L2缓存命中/未命中数据。

  • 实时监控已有进程:sudo taskinfo -p <进程PID>
  • 启动程序并统计:sudo taskinfo -c "./你的程序"

输出里会明确列出Page Faults(页错误)、L1 Data Cache MissesL2 Cache Misses等关键指标,你可以直接计算缓存命中率。

2. dtrace

macOS原生的动态追踪工具,灵活性极强,能自定义脚本捕获几乎所有硬件和软件事件,包括缓存操作、页错误。
比如统计目标程序的页错误次数,可以用这个脚本(保存为page_fault.d):

#!/usr/sbin/dtrace -s

proc:::exec-success
/execname == "你的程序名"/
{
    self->trace = 1;
}

proc:::exit
/self->trace/
{
    self->trace = 0;
}

vm:::fault
/self->trace/
{
    @page_faults[execname] = count();
}

运行方式:sudo dtrace -s page_fault.d -c "./你的程序"

针对M1的缓存事件,你可以用dtrace -l | grep cache查看可用的缓存相关探针,或者直接访问CPU性能计数器(需root权限)来统计命中/未命中次数。

3. sysctl

适合查看系统级的全局缓存和页错误统计,不是针对单个进程,但能帮你了解整体系统状态:

  • 查看系统累计页错误:sysctl vm.page_faults
  • 查看缓存硬件信息:sysctl hw.cache(M1下会输出L1/L2缓存的大小、关联度等参数)

这些工具都是macOS自带的,不需要额外安装。如果追求易用性优先选taskinfo,需要自定义统计逻辑就用dtrace

内容的提问来源于stack exchange,提问作者Marcus Müller

火山引擎 最新活动