私はターゲット上で私のiPhoneアプリケーションをプロファイリングし、Instrumentsの65%の時間はで費やされています。mach_msg_trapが待っているものを見つける方法?
私は永遠に、実行され、2秒ごとaproximately、performSelectorOnMainThread:withObject:waitUntilDone:
を使用して、メインスレッドに戻って結果を送信するバックグラウンドスレッドを持っています。私は完了するまで待っていません。
私はターゲット上で私のiPhoneアプリケーションをプロファイリングし、Instrumentsの65%の時間はで費やされています。mach_msg_trapが待っているものを見つける方法?
私は永遠に、実行され、2秒ごとaproximately、performSelectorOnMainThread:withObject:waitUntilDone:
を使用して、メインスレッドに戻って結果を送信するバックグラウンドスレッドを持っています。私は完了するまで待っていません。
。インストゥルメントの設定エラーです。
サンプラーツールのデフォルトはです。すべてのサンプル数、これは状態に関係なくすべてのスレッドを測定します。
代わりにに切り替えて、現在の実際の作業負荷を反映するサンプル時間を実行してください。 Screenshot of Instruments http://developer.apple.com/library/mac/qa/qa2009/images/qa1619_running_sample_times.png
あなたのメインスレッドは、このバックグラウンドスレッドで待機している(またはユーザー入力を待っている)を心配することは何もありません以外の何かをやっていることを期待していない場合 - あなたのアプリケーションは、単純にほとんどの時間を何の関係もありません。
メインスレッドが積極的に何か他のことをしていると思われる場合は、質問を更新してそれを記述してください。この場合は、実際のタイムシェアがさらに上がっているコールスタックの一番下にあるので、mach_msg_trapへの完全なコールスタックを調べることをお勧めします。
ソース:http://developer.apple.com/mac/library/qa/qa2009/qa1619.html – Nickolay
すべてのリンクがここで壊れています – grane2212