[Java lista] standard kimenetre valo iras felgyorsitasa
Laszlo Szathmary
szathmar at loria.fr
2009. Nov. 27., P, 21:44:40 CET
> A Sytem.out helyett használd a következő szösszenetet:
>
> PrintStream bufferedSystemOut = new PrintStream(new
> BufferedOutputStream(System.out,1024*1024))
Sziasztok!
Koszonom a valaszokat. Csinaltam egy kis osszehasonlito tesztet es az
eredmeny egeszen megdobbento. Maga a tesztprogram itt megtalalhato:
http://paste.org/pastebin/view/12306 .
A lenyeg (1 millio iteracio eseten, a kimenet egy 18 MB-os text file):
(1) System.out.print
10697 msec
(2) PrintStream bufferedSystemOut =
new PrintStream(new BufferedOutputStream(System.out, 4096));
bufferedSystemOut.print("abcdefghijk ");
...
bufferedSystemOut.flush();
1514 msec
Megjegyzes: nem szukseges nagyon nagy puffert hasznalni, 4 KB is eleg.
A vegen ne felejtsuk el meghivni a flush()-t.
(3) BufferedWriter out =
new BufferedWriter(new OutputStreamWriter(System.out), 4096);
out.write("abcdefghijk ");
...
out.flush();
382 msec
=====
Lac
További információk a(z) Javalist levelezőlistáról