Xcode6.4でボトルネックとなっている遅い処理を特定する(iOS/OSX)
Xcodeに付属するInstrumentsで遅い処理を特定する手順です。
Instrumentsの中のTimeProfilerを使います。
Profileを実行します。
TimeProfilerを選択します。
赤いボタンを押すと実行が始まります。
スレッド毎にかかった時間(milliseconds)と比率(%)が表示されます。
このプログラムはスレッドを4つ使うので4行出力されています。
比率が大きい部分を展開していき特定します。
_platform_bzeroという関数でかなりの時間がかかっていることが分かります。
process_line_exclude_comment_vimという関数内で以下の処理があるので、ここのmemsetの部分がこの処理だろうと推測します。
char valid_str[DATASIZE_OUT+1]; memset( valid_str, 0, sizeof(valid_str) );