2012-01-29 15 views
4

OS Xでアプリケーションコードをプロファイルする最も良い方法を知りたいです。nano秒の解像度タイマがあり、いくつかのベースラインテストの結果、カーネルのシステムコールスイッチに当たっているようです約45マイクロ(macbook 2ghz core2デュオモデル)。Mac OS X上の高性能コード

私は毎回アプリケーションのサイクルを許可してから約25,000-50,000マイクロのスケジューリングコンテキストスイッチを得ることができます。私はいくつかのアルゴリズムをテストしていますが、私はこれの効果を制限したいと思います。

私が本当に望むのは、タスクのプロセッサアフィニティを設定することと、メインスレッドの優先度をリアルタイムに設定できることです。これは、ある日、このMacbookを低レイテンシとして使用できるため、悪いことではありませんコントローラーSnow Leopard/XCodeでこれを行う方法に関するアイデア?

+0

低遅延のコントローラデバイスを保証したい場合、パーソナルコンピュータはそれを切断しません。 [マイクロコントローラ](http://en.wikipedia.org/wiki/Microcontroller)(例えば[プログラマブルロジックコントローラ](http://en.wikipedia.org/wiki/Programmable_logic_controller))のようなものは、通常はコストのかかるコンテキストスイッチを避けたい場合は、このような状況になります。 –

+2

あなたのアプリのメインスレッドからあなたのリアルタイム/優先度の高いプログラムを分離することから始めます。メインスレッド上で起こることはすべて、*確実ではありません*優先度が高いことです。 (あなたが "app"と言って以来、ユーティリティやエージェントのようなものではなく、あなたがuiを持つプログラムを指していると仮定します) – justin

+0

非常に速い部分をプロファイリングする場合は、操作を1000回以上繰り返し、測定します。少なくともそれが私のやり方です。 – demorge

答えて

1

XcodeでSharkを使用することができます。 DTraceもあります。