Posted by & filed under 開発.


おーたにさんに何か書けと言われたので何か書いてみます。

よくjavaで「+」つかって文字列結合すると遅いから止めた方がいいよって言われますよね?どんなケースでもまずいんでしょうか?気になったので調べてみました。

こんな感じでいくつか文字列を結合するサンプルを作ってそれをjavapにかけてみます。

javapにかけるとこんな感じの出力になります。全部だすとみづらいので、適当に整形したり抜き出したりしてます。

a, bの場合はよくいわれているように結合のたびにStringBuilderが作られてます。
cの場合のように全部「+」でつなげるだけだと、StringBuilderは一回だけしか作られないです。
dの場合のようにリテラルだけの場合は「+」でつないでも StringBuilder は作られず、そのままリテラルとして埋め込まれているようです。

どんな場合でも新しいStringBuilderが作られるわけじゃないらしいです。

というわけで、「パフォーマンスチューニングだぜ!」とかいってなんでもかんでもStringBuilderにすればいいってわけじゃないんだよってお話でした。

おしまい。


関連文書:

  • 関連文書は見つからんがな

Comments are closed.