将字符串输出到系统输出最快的方法是什么?

将字符串输出到系统输出最快的方法是什么?,第1张

将字符串输出到系统输出最快的方法是什么?

感谢您的建议。我创建了一个测试程序来比较它们:

import java.io.BufferedOutputStream;import java.io.BufferedWriter;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.lang.StringBuilder;public class systemouttest {    public static void main(String[] args) throws Exception {        long starttime = System.currentTimeMillis();        for (int i = 0; i < 100000; i++) {System.out.println( i );        }        long printlntime = System.currentTimeMillis();        StringBuilder sb = new StringBuilder();        for (int i = 0; i < 100000; i++) { sb.append( i + "n" );        }        System.out.print(sb.toString());        long stringbuildertime = System.currentTimeMillis();        OutputStream out = new BufferedOutputStream ( System.out );        for (int i = 0; i < 100000; i++) { out.write((i + "n").getBytes());        }        out.flush();        long bufferedoutputtime = System.currentTimeMillis();        BufferedWriter log = new BufferedWriter(new OutputStreamWriter(System.out));        for (int i = 0; i < 100000; i++) { log.write(i + "n");        }        log.flush();        long bufferedwritertime = System.currentTimeMillis();        System.out.println( "System.out.println: " + (printlntime - starttime) );        System.out.println( "StringBuilder: " + (stringbuildertime - printlntime) );        System.out.println( "BufferedoutputStream: " + (bufferedoutputtime - stringbuildertime) );        System.out.println( "BufferedWriter: " + (bufferedwritertime - bufferedoutputtime) );    }}

结果:

Environment1
System.out.println:482
StringBuilder:210
BufferedoutputStream:86
BufferedWriter:202


Environment2
System.out.println:1763
StringBuilder:45
BufferedoutputStream:76
BufferedWriter:34

这些建议的表现均优于System.out.println。BufferedOutputStream似乎是最安全的选择,因为它在两种测试环境中均表现良好。BufferedWriter也许更快。

如果有人有任何想法,请发表进一步的建议。我敢肯定有人可以使它更快:)



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5438827.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-11
下一篇2022-12-11

发表评论

登录后才能评论

评论列表(0条)

    保存