71
60

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 5 years have passed since last update.

Instrumentsを使ってみた

Posted at

##はじめに
以前から、ふんわりと存在は知っていたけど、殆ど使ったことがなかったInstrumentsを使って遊んでみました。

##そもそもInstrumentsって?
Instrumentsでは、instrumentと呼ばれる各種の専用ツールを使って、プロセスの振る舞いをさまざまな視点からトレースできます。また、OS Xユーザインターフェイス上の一連の操作を記録しておき、 これを繰り返し再現しつつ、instrumentをいくつか使ってデータを収集することも可能です。

参考:
https://developer.apple.com/jp/documentation/InstrumentsUserGuide.pdf

##実際に使ってみた

###前準備
まず、Xcodeで何かプロジェクトを開きます。(とりあえず、InstrumentsTestというプロジェクトを作ってみました。)

instruments_ss_1

次に、一度そのプロジェクトを検証したい実機またはシミュレータにビルドします。(私はシミュレータに入れました。)

###Instruments起動
Xcodeから起動するには、
"Xcode">"Open Developer Tool">"Instruments"
と辿っていって下さい。

instruments_ss_2

Instrumentsを起動すると、以下のようなウィンドウが開きます。

instruments_ss_3

とりあえず、よく名前を目にする"Time Profiler"を使ってみることにしました。
※"Time Profiler"はシステムのCPUがどのプロセスを実行しているか、時間軸に沿って調べることができます。オーバーヘッドもあまりありません。

起動したら、以下のように先程プロジェクトをビルドした実機またはシミュレータを設定します。

instruments_ss_4

###トレースしてみよう
みなさん、すでに気になっていると思いますが、Instrumentsウィンドウの左上にある赤い「●」。これをクリックすると、検証端末の中のアプリが起動し、トレースがはじまります。

instruments_ss_6

ちなみに、とりあえず作ったアプリはこんな感じです。(ただラベルを表示しているだけ。)

instruments_ss_7

何度か起動すると、こんな感じで過去ログも見れます。

instruments_ss_8

これだけではあまり面白くないので、他にも何かトレースしてみましょう。

###ちなみに
InstrumentsをXcodeでデバッグしつつ使いたい場合は、以下のように、
"Product">"Profile"
を実行して下さい。

instruments_ss_5

##新たなLibraryを追加してみよう
Instrumentsは一度に複数のデータを計測することができます。
Instrumentsウィンドウの右上にある「+」ボタンをクリックすると、Libraryリストが表示されます。

instruments_ss_9

個人的にメモリ関連が気になるので、"Allocations"と"Leaks"を追加してみました。(追加したいLibraryをダブルクリックする。)
※"Allocations"はヒープメモリの使用量を、割り当て処理(クラスによるオブジェクトの割り当てを含む)を追跡することにより測定します。また、仮想メモリの状況も、その統計情報をリージョンごとに記録します。
※"Leaks"はメモリ総使用量を計測し、メモリリークが起こっていないか確認し、クラスによるオブジェクト割り当ての統計情報を提供し、さらに、アクティブな割り当てやリークしたブロックすべてのアドレス履歴を示します。

instruments_ss_10

一度にCPUだけでなく、ヒープメモリの使用量とメモリリークの確認ができるようになりました。だいぶ便利そうです。

##せっかくだし、もっと遊んでみよう
ただラベルを表示させているだけではつまらないので、ちょっと無茶してみました。

###プロジェクトの修正
こんな感じなら、表示が面白くなるはずです。

instruments_ss_11

###実行してみた
ヒープメモリの使用量ががんがん上がっていっています。

instruments_ss_12

##まとめ
Instrumentsは、CPUやメモリ使用量などのデータを可視化し、アプリのパフォーマンス改善に役立つツール群です。

今回はメジャーな"Time Profiler"と"Allocations"と"Leaks"しか使いませんでしたが、他にも様々なLibraryがあるので、興味のある方は調べてみて下さい。

今回の例だけではまだなんとも言えませんが、大きなプロジェクトで使ってみたらもっと恩恵に与れると感じました。

71
60
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
71
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?