2009-05-23 12 views
-1

私は半分の方法で行われているアプリを持っています。パフォーマンスはあまり良くないので、どこにボトルネックがあるのだろう。私は先に進んで疑わしいコード行をコメントアウトすることができますが、どのメソッドがどのくらい長く続いたのか、次に何が起こったのかを教えてくれるツールがあるのだろうかと思います。スタックトレースはそれほど役に立ちません。iPhoneアプリケーションにパフォーマンスのボトルネックがどこにあるかを知るツールや良いテクニックはありますか?

スタックトレースをGraphVizグラフに変換して画像全体を視覚的に表示するという奇妙な考えがありました。私は、IBMの何人かの人がスタック・トレースのビジュアル・グラフを生成したのと同じようなことをしたことを知っています。これは非常に印象的で有意義でした。ホイールを再開発する前に、iPhone OSのパフォーマンスボトルネックを見つけるのに役立つツールやテクニックがありますか?

+1

は、これに応答して、このです:http://stackoverflow.com/questions/899880/how-can-i-programmatically-determined-cpu-usage-rate-or-how-busy-occupied-the-sy? – Kriem

答えて

0

プロセスに接続してパフォーマンスを測定するには、Instruments(開発者ツールに付属のアプリケーション)を使用します。

「コアアニメーション」と呼ばれるプリセットがあります。これはおそらくあなたが望むものです。

インスツルメンツのiPhoneデベロッパポータルのチュートリアルビデオがあります:Cocoaアプリケーションのパフォーマンス最適化のための貴重なツールで http://developer.apple.com/codingheadstarts/index.html

2

ケネスが言ったように、Instruments。そのユーザーガイドはhere(またはXcodeのドキュメント)にあります。 Xcodeのデバッグツールに関する素晴らしい点の1つは、デバイス上で実行されるアプリケーションに対して実行できるため、実際のハードウェアでアプリケーションのプロファイリングを行うためにInstrumentsを使用できることです。

Instrumentsを使用する場合、私は、CPUサンプラーツールを使用すると、アプリケーションが最も多くの時間を費やしている場所を非常に詳細に分析できます。たとえば、私は遅いSQLiteクエリであると思っていたものを持っていて、Instrumentsを実行したときにSQLiteのすべてのやりとりを最適化するように準備を進めていましたが、実際には無駄な文字列処理ルーチンが原因です。

プロファイリングにはSharkを使用することもできますが、使い方は簡単ではありません。

あなたはまた、これらの質問に対する答えに興味がある可能性があり:

関連する問題