StringBuilderを使ったクソコードはどこまで遅いか

※ 4/9 11:25 いろいろ計測しなおしてます。こちらも参照


Javaで文字列連結する場合には+演算子よりもStringBuilderを使うべき、という話があるのですが、よく

sb.append("[" + data + "]");

みたいなコードをみかけて、あんまり意味ないなーと思ったりします。
あと、

sb.append("title:");
sb.append("[" + data + "]");

みたいに、+演算子を使った一行の式にして

sb = "title:" +
  "[" + data + "]";

としておけば「title:」と「[」はコンパイル時点で最適化されたのに、ってコードもあります。


ということでTwitter

Javaでの文字列連結は+を使うべき、ってやったほうが、StringBuilder使ったsb.append("[" + data + "]")みたいなクソコードが量産されるよりも、世の中全体のJava文字列連結は速くなる可能性がある。

ということを書いてみたのだけど、ほんとにクソコードは遅いのか。
試してみました。
あ、適当に試してみただけなので、実際に速度が必要なときの指針にするときは、まじめに調べてから計測しなおしてください。

続きを読む