JavaでもC#でも、文字列を+で連結すると遅いという話を聞きます。
こんな感じ "abcd"+"efg"
だからStringBuilderを使いましょうと、どこのコーディング規約でも書いています。
こんな感じ
StringBuilder s = new StringBuilder("abcd");
s.append("efg");
… = s.toString();
ある日バッチ処理が遅いので、パフォーマンス改善の作業をしました。 それで上記の修正も入れたのですが全く効果が有りませんでした。
考えたら、僕が最初に+での文字列結合が遅いと知ったのは、かなり昔のJavaWorld誌です、どれぐらい昔かと言うと、今は大学生のセガレが当時はギャーギャー夜鳴きをしていた頃です。
当然その間に改善もされているはずなので試してみました、環境はWindows7で普通のノートPCです。
こんな感じ
String s='1'
for(int i=0; i <10000; i++)
s += '1'
1万回繰り返したのですが、+とStringBuilderでは差がなし
3万回繰り返してやっと0.03秒の差
僕なりの結論ですが。
問題なし、わざわざコーディング規約にするほどの事ではない。
です、遅くなった時に始めて気にするでよいと思います。
0 件のコメント:
コメントを投稿