macos-perf について
macos-perf は、macOS のパフォーマンスを監視・分析するスキルです。アプリやデバイスのリソース上のボトルネック診断に向け、Instruments、vm_stat、powermetrics などで CPU、メモリ、温度、電力を調べます。
主な機能
- 01CPU、メモリ、ネットワーク使用状況の監視
- 02Instruments によるアプリのプロファイリング
- 03vm_stat によるメモリプレッシャーの確認
- 04powermetrics による温度指標の確認
- 05電力消費の分析
活用シーン
- 01アプリの高い CPU 使用率の調査
- 02アプリのメモリ分析によるリーク検出
- 03高負荷時の温度と電力の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill macos-perfインストール後、Claude Code で/macos-perfを入力して読み込まれたか確認します。
詳細
macos-perf
目的
このスキルでは、ネイティブツールを使って macOS システムのパフォーマンスを監視およびプロファイリングします。CPU、メモリ、熱、電力の指標に注目し、ボトルネックの特定とアプリケーションの最適化を支援します。
使用する場面
アプリの CPU 使用率が高い原因を診断するとき、メモリリークを調査するとき、リソースを大量に消費するプロセスをプロファイリングするとき、高負荷時の熱状態を確認するとき、または macOS デバイスの電力消費を分析するときに、このスキルを使用します。
主な機能
- Activity Monitor または
top/htopを使って、CPU、メモリ、ネットワークの使用状況などのシステム指標をリアルタイムで監視します。 - Instruments でアプリケーションをプロファイリングし、CPU、メモリ、エネルギーに関する詳細なトレースを取得します。
vm_statを使ってメモリプレッシャーを確認し、メモリ不足の状態を検出します。powermetricsで熱状態を照会し、CPU/GPU の温度やファン速度を確認します。powermetricsで電力指標を分析し、バッテリー消費と効率を測定します。top -o cpuなどのコマンドラインツールでプロセス一覧を並べ替えたり、instruments -s devicesで利用可能なテンプレートを確認したりします。
使用パターン
スクリプトからこのスキルを呼び出して監視を自動化したり、AI ワークフローに組み込んでリアルタイム分析を行ったりします。たとえば、サーバーのように稼働させる macOS 環境で定期的にループ内のチェックを実行したり、アプリがリソースのしきい値を超えたときにプロファイリングを開始したりできます。タスクに応じて、使用するツールとフラグを必ず正確に指定してください。たとえば、すばやく確認するには top を、詳細に調査するには Instruments を使用します。自動化に組み込む場合は、解析用にデータを JSON にエクスポートしてください。
主なコマンド/API
top -o cpu -s 1を使うと、CPU 使用率順に並べたプロセスが毎秒更新されて表示されます。出力をgrepに渡して絞り込むこともできます。例:top -o cpu | grep "MyApp"vm_stat | grep "Pages"でメモリプレッシャーを確認し、空きページ数を取得します。サンプルコード:output = subprocess.run(['vm_stat'], capture_output=True).stdout free_pages = int(re.search(r'free:\s+(\d+)', output.decode()).group(1))powermetrics --samplers cpu,thermal -i 1000を実行すると、CPU と熱に関するデータを 1 秒ごとに取得できます。- CLI から Instruments を起動します:
instruments -w <device> -t Time Profiler -D output.trace /path/to/app。エクスポートした .trace ファイルを分析に使用します。 - 熱状態を確認するには、
ioreg -l | grep "Ambient"を使ってシステムレジストリから周囲温度を解析します。 - これらのツールに API キーは不要です。macOS 上でネイティブに動作します。
統合に関する注意
コマンドを Python またはシェルスクリプトでラップして統合します。カスタムパスには環境変数を設定します。例:export INSTRUMENTS_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin/instruments。データをエクスポートするには、plutil を使って .plist の出力を JSON に変換します。他のスキルと組み合わせる場合は、macOS のバージョンに互換性があることを確認してください(例:Instruments には Xcode が必要です)。sw_vers -productVersion で確認できます。リソースの競合を防ぐため、負荷の高いツールを複数同時に実行しないでください。
エラー処理
コマンドの終了コードを確認します。たとえば、top が失敗した場合は echo $? で確認し、エラーを記録するか再試行します。Instruments では stderr を解析し、"Template not found" のようなメッセージを検出したら代替手段に切り替えます。スクリプトでは、次のように try-except を使います:
try:
result = subprocess.run(['instruments', '-t', 'Time Profiler'], check=True)
except subprocess.CalledProcessError as e:
print(f"Error: {e.returncode} - {e.output}")
よくある問題には、権限エラー(sudo を付けて実行)や依存関係の不足(xcode-select --install で Xcode コマンドラインツールをインストール)があります。
具体的な使用例
- 特定のプロセスの CPU 使用率を監視するには、ループスクリプトで
top -pid <processID> -o cpuを実行し、出力を分析して使用率が 80% を超えた場合に警告します。スクリプトの例:while true; do top -pid 1234 -l 1 | grep CPU; sleep 5; done。 - アプリのメモリをプロファイリングするには、
instruments -t Allocations -D profile.trace /Applications/MyApp.appを実行し、トレースを Instruments GUI で開いてリークを特定します。スクリプトでの統合例:instruments ... && open profile.trace。
グラフ上の関連
- 関連項目:macos クラスター(基本的なシステム操作向けの macos-core など)、performance タグ(一般的なプロファイリングスキルへのリンク)、profiling タグ(アプリ最適化ツールとの関連)。
- 依存関係:基盤となるアクセスには macos クラスターのスキルが必要です。直接的な API リンクはありません。