4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

macで使えるプロファイラ(Xcode13版)

Posted at

mac上でビルドしたコードに対してプロファイラを使いたいとき、Linuxで標準的に使えるgprofが利用できない。clangではそもそも-pgオプションが無い。
そこで以前のバージョンのmacではiprofilerというコマンドを用いてプロファイルを取得することができたが、Xcode13では非推奨となったらしい。
(参考 : https://apple.stackexchange.com/questions/415563/repeatedly-being-asked-to-install-command-line-tools

2021年において最新版であるXcode13で使えるプロファイルを取るにはxcrun, xctraceコマンドを利用する。

利用方法は以下の通りである。

$ xcrun xctrace record --template 'Time Profiler' --launch -- ./a.out

実行後に Launch_a.out_2021-12-21... というようなディレクトリが作られるので、これをopenコマンドで開くことによってInstruments上でプロファイルを見ることができる。

image.png

templateの引数として使えるものは'Time Profiler', 'Allocations', 'CPU Profiler' などがあり、Instrumentsで新規作成するときに出てくるダイアログ上で確認できる。
ただし、ほとんどの用途に対しては'Time Profiler'を使っておけば良いと思われる。

image.png

より詳細な使い方については以下のコマンドを実行するとヘルプが出てくる。

$ xcrun xctrace record
One of the following options is required: --all-processes, --launch -- command [arguments], --attach <pid|name>
usage: xctrace record [<options>] [--attach | --all-processes | --launch -- command ]

description:
	Perform a new recording on the specified device and target with the given template

options:
	--output <path>                        Output .trace file to the given path
	--append-run                           Appends a new run to an existing trace file
	--template <path|name>                 Record using given trace template name or path
...

参考

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?