Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

Xcode6.4でボトルネックとなっている遅い処理を特定する(iOS/OSX)

Xcodeに付属するInstrumentsで遅い処理を特定する手順です。 Instrumentsの中のTimeProfilerを使います。
Profileを実行します。 f:id:pebble8888:20150928204316p:plain

TimeProfilerを選択します。 f:id:pebble8888:20150928204327p:plain

赤いボタンを押すと実行が始まります。 f:id:pebble8888:20150928204333p:plain

スレッド毎にかかった時間(milliseconds)と比率(%)が表示されます。 このプログラムはスレッドを4つ使うので4行出力されています。 f:id:pebble8888:20150928204338p:plain 比率が大きい部分を展開していき特定します。 _platform_bzeroという関数でかなりの時間がかかっていることが分かります。 process_line_exclude_comment_vimという関数内で以下の処理があるので、ここのmemsetの部分がこの処理だろうと推測します。

char valid_str[DATASIZE_OUT+1];
memset( valid_str, 0, sizeof(valid_str) );

f:id:pebble8888:20150928204344p:plain