パフォーマンスを最適化せよ

Maxではサクサクとプログラムを作って行けるのが素晴らしいのですが、そのうちにパッチが肥大化・複雑化して音が途切れたり、フレーム・レイトが落ちたりってことが多々ありますよね。他のプログラミング言語でも同じようなことが起こりますが、Maxの場合は簡単にプログラミングできるが故に、下手なプログラムを作ってしまいがちですね。しかも、パッチ・コードがスパゲッティ状態で、どこをどう直せば良いか分からない。下手な鉄砲も数撃ちゃ当たる、とは限らないですから。

このような場合の対処法は、すっきりしたパッチに作り直すことがキホン(美しいパッチは美しく動作する!)ですが、もうひとつ役立つ(かもしれない)ことは、パッチの実行状態を分析することです。ただし、現在のMaxは分析機能をほとんど備えていないので、他のツールを使うことになります。

まず、手軽に試せるツールは、アクティビティモニタです。アクティビティモニタを起動して、MaxMSPを選んで表示メニューの「プロセスをサンプル収集」を選びます。これで、MaxMSPが実行しているプロセスを分析した結果が表示されます。この表示は階層化されているものの、スレッドの山盛り状態なので、これを読み解くのは結構大変です。

activitiesmonitor-sampling.png

もう少し賢い(いや、とっても賢い)ツールがDeveloper Toolsに用意されていて、それは/Developer/Applications/Performance ToolsにあるShark(サメ!)です。Sharkを起動したら、Time ProfileのProcessとしてMaxMSPを選んでStartボタンをクリック。しばらくすると分析結果が表示されます。以下の例では、jit.argb2uyvyとjit.slideの実行時間が長いので、このあたりを改善すればパフォーマンスが向上するかも?といったことが分かります。

shark-time-profile.png

SharkはMac OS Xの至宝のひとつで、それだけに高機能・多機能なSharkを使いこなすのは大変です。ただ、ヘナチョコ開発者の私でも適当にいじっているうちにヒントが見つかることが多いので、トライする価値はあります。Sharkの他にもDeveloper Toolsには、メモリ関係やOpenGL関係などの分析ツールが揃っていますから、イロイロと試してみると良いと思います。下手な鉄砲も道具を揃えれば当たる(かもしれない)ってことです。

ともあれ、Max5にもパフォーマンス分析ツールが備わって欲しいですよね。強く強く希望(って日本語で書いても届かない〜笑)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です