水曜日 3 21, 2007
文字連結
すでにご存知の方が多いでしょうし、何をいまさらって感じだとおもいますが、 Javaでの文字列(String)の連結の性能について、 以前、ちょこっとテストをやったので結果をのっけたいとおもいます。 1. +演算子を使うケース 2. String.concat()をつかうケース 3. StringBuffer.append()を使うケース の3パターンを計測してみました。 計測方法は、4byteの文字列 "fuga" を30000回連結しまくるだけのプログラムで 実行時間を比べるだけのシンプルなものです。 FullGCは起きないようheapの調整は実施しましたが、 +演算子、String.concat()では、YoungGCは避けられませんでした。 蛇足ですが、jreのバージョンは、以下のとおりです。 。。。。。
| $ java -version java version "1.6.0" v1.5.8f. Copyright 2001 Pavel Kouznetsov. Java(TM) SE Runtime Environment (build 1.6.0-b105) Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing) |
| ケース | Wrap Time:Client VM | Wrap Time: Server VM | |
| 1 | +演算子 | 21641 ms | 14078 ms |
| 2 | String.concat() | 5890 ms | 4200 ms |
| 3 | StringBuffer.append() | 16 ms | 31 ms |
Posted at 02:58午前 3 21, 2007 by ryoya in Java |
Comments: