2012年01月12日

IOちゃんってめっちゃ遅い

前回も書いたけどIO処理ってめっちゃ遅い

そこで
文字列を
out.println("");
で1行ずつ分けて出力するのと(可読性のために)
まとめて出力するのではどっちが早いのかと調べてみたところ

long time1 = System.currentTimeMillis();

for (int i = 0; i <= 9999; i++) {
out.println("文字列");
}

long time2 = System.currentTimeMillis();
StringBuilder sb=new StringBuilder();
for (int i = 0; i <= 9999; i++) {
sb.append("文字列");
}
out.println(sb.toString());
long time3 = System.currentTimeMillis();
long r1=time2-time1;
long r2=time3-time2;
out.println(String.valueOf(r1));
out.println(String.valueOf(r2));

GAE環境で7ms 1ms
ローカル環境で 213ms 20ms

つまり1行ずつ出力するとすごく時間がかかるので
行数がとんでもなく多い場合はまとめて出力したほうがいいかもしれません。
可読性はStringBuilder.append("");で1行ずつ書いていけばさほど変わら無いと思う

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/appleteaoisii-program/2034575 

トラックバックはまだありません。

コメントはまだありません。

コメントする。

絵文字
 
星  顔