1. ホーム
  2. macos

mac os xでのc++のプロファイリング

2023-12-05 20:19:42

質問

私は私の mac (os x Lion) でいくつかの c++ コードをプロファイルしようとしていますが、有用なものを見つけることができませんでした。私は、どの関数が CPU 時間を消費しているかを教えてくれるプロファイラーを探しています (matlab プロファイラーに似ています)。

以下は、私が試したものです。

  • gprof。これは私の linux マシンで使用するものですが、私の mac では空の出力を与えるだけです (どうやら既知の問題のようです)
  • Instruments。コンパイルされたバイナリ内で何かをプロファイルする方法がどうしてもわかりません。また、有用なチュートリアルのようなものを見つけることもできません。
  • (他の検索では、もう利用できない Shark と、メモリ用の Valgrind が見つかりました)。

本当に助かりました!

どのように解決するのですか?

Instrumentsは使用するツールです。Instrumentsの完全な説明はこの回答の範囲外ですが、ここではクイックスタートガイドを紹介します。

  1. Instruments を開きます。 1
  2. Time Profiler" テンプレートを選択します。
  3. ターゲット]ドロップダウン・メニューで、アプリケーションを選択します。 2
  4. 赤丸のボタン("record")を押して、アプリケーションの実行を開始します。
  5. 該当する場合、アプリケーションでプロファイルする必要があることを行います。
  6. 録音ボタンをもう一度押して、録音を停止します。
  7. インストゥルメントのツールを使って、結果を分析します。

利用可能なツールのうち、最も頻繁に役立つものは次のとおりです。

  • 開示矢印を使用したコール ツリーの展開
  • 関数名の上にある丸で囲んだ矢印をクリックすると、その関数にフォーカスを当てることができる
  • 関数をダブルクリックして、関連するソースを表示する
  • 左側にある "Invert Call Tree" チェックボックス。

の呼び出しを開始することもできます。 instruments をコマンドラインで起動することもできます。

instruments -l 30000 -t Time\ Profiler -p 5773

見る 指示 .


1 Instruments を開く簡単な方法の 1 つは、Spotlight を使用することです。タスク バーの右上隅 (時計の横) にある虫眼鏡をクリックし、「Instruments」と入力するだけです。

2 ターゲットを選択...」をクリックし、実行ファイルのパスを指定します。