ガベージコレクションの動作の確認

では、ガベージコレクションを動作させてみよう。動作の確認には、Instrumentsが使える。Instrumentsは、Leopardから導入されたパフォーマンス測定ツールだ。

Instrumentsのライブラリを見てみると、「GC Total」と「Garbage Collection」というツールがある。これらを使ってみよう。さらに、オブジェクトの確保数を見るために、「ObjectAlloc」も追加しておく。

Instrumentsのライブラリ

テストのサンプルとして、「CocoaSlides」を使ってみた。Core Animationのサンプルとして、Appleから提供されているアプリケーションである。特にガベージコレクションに対して最適化されているソースコードではないが、ガベージコレクションを有効にして、ビルドしてみた。

Instrumentsを使って、ビルドされたイメージを実行させる。すると、ガベージコレクションの動作状況と、ゴミとして再利用されるオブジェクトの大きさを調べることができる。CocoaSlidesは、一度起動すると、自動で実行し続けてくれるので、便利だ。

動画

Instruments実行の様子

Objects ReclaimedおよびBytes Reclaimedと、それに連動するObjectAllocの値を見てほしい。ガベージコレクションが期待通りに動作していることが分かるだろう。

余談だが、ムービーからも分かるように、Instrumentsの可視性とリアルタイム性の高さは素晴らしいの一言に尽きる。これだけでも、Leopardを導入する意義がある。