現在、Webkitからディスプレイリストを文字列で送っていて、その文字列の分割が重かったので、componentsSeparatedByStringとcomponentsSeparatedByCharactersInSetの速度を比較してみました。

componentsSeparatedByStringは
 NSArray *dl_split = [dl componentsSeparatedByString:@";"];
と実装し、componentsSeparatedByCharactersInSetは
 NSCharacterSet *spr = [NSCharacterSet characterSetWithCharactersInString:@";"];
 NSArray *dl_split = [dl componentsSeparatedByCharactersInSet:spr];
と実装しています。

結果は以下です。先頭の数字は分割対象の文字の長さです。

iPhoneシミュレータでの結果
2750byte ByString:0.000597sec ByCharater:0.000430sec(28% differ)
2750byte ByString:0.000576sec ByCharater:0.000433sec
2750byte ByString:0.000602sec ByCharater:0.000520sec

iPhone4での結果
2886byte ByString:0.006587sec ByCharater:0.004440sec(33% differ)
2854byte ByString:0.006602sec ByCharater:0.004221sec
2854byte ByString:0.006603sec ByCharater:0.004208sec

iPhone3GSでの結果
2747byte ByString:0.008921sec ByCharater:0.005547sec(39% differ)
2747byte ByString:0.008956sec ByCharater:0.007997sec
2747byte ByString:0.008944sec ByCharater:0.007529sec

単一文字で分割する場合、componentsSeparatedByCharactersInSetを使った方が30%程度高速なようです。