zoukankan      html  css  js  c++  java
  • java字符串拼接与性能

    使用

    • Concatenation Operator (+)
    • String concat method – concat(String str)
    • StringBuffer append method – append(String str)
    • StringBuilder append method – append(String str)

    进行性能测试。

    环境 win7 32位, cpu双核2.5GHZ,2G内存。

    测试代码如下:

        private final static int OUTER_ITERATION = 10;
        private final static int INNER_ITERATION = 50000;
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            String addTestStr = "";
            String concatTestStr = "";
            StringBuffer concatTestSb = null;
            StringBuilder concatTestSbu = null;
    
            for (int outerIndex = 0; outerIndex < OUTER_ITERATION; outerIndex++) {
                StopWatch stopWatch = new LoggingStopWatch("StringAddConcat");
                addTestStr = "";
                for (int innerIndex = 0; innerIndex < INNER_ITERATION; innerIndex++)
                    addTestStr += "*";
                stopWatch.stop();
            }
    
            for (int outerIndex = 0; outerIndex < OUTER_ITERATION; outerIndex++) {
                StopWatch stopWatch = new LoggingStopWatch("StringConcat");
                concatTestStr = "";
                for (int innerIndex = 0; innerIndex < INNER_ITERATION; innerIndex++)
                    concatTestStr.concat("*");
                stopWatch.stop();
            }
    
            for (int outerIndex = 0; outerIndex < OUTER_ITERATION; outerIndex++) {
                StopWatch stopWatch = new LoggingStopWatch("StringBufferConcat");
                concatTestSb = new StringBuffer();
                for (int innerIndex = 0; innerIndex < INNER_ITERATION; innerIndex++)
                    concatTestSb.append("*");
                stopWatch.stop();
            }
    
            for (int outerIndex = 0; outerIndex < OUTER_ITERATION; outerIndex++) {
                StopWatch stopWatch = new LoggingStopWatch("StringBuilderConcat");
                concatTestSbu = new StringBuilder();
                for (int innerIndex = 0; innerIndex < INNER_ITERATION; innerIndex++)
                    concatTestSbu.append("*");
                stopWatch.stop();
            }
    
        }
    View Code

    测试结果:
    Performance Statistics   2010-04-08 06:16:00 - 2010-04-08 06:16:30

    Tag Avg(ms) Min Max Std Dev Count
    StringAddConcat 9355.4 7860 10046 547.7 10
    StringBufferConcat 3.5 0 5 2.3 10
    StringBuilderConcat 2.0 0 5 2.4 10
    StringConcat 3.1 0 6 2.5 10


  • 相关阅读:
    由DBCursor的“can't switch cursor access methods”异常引发的思考
    在Java中使用元组类型的利器
    Linux命令行如何返回上一次的目录
    Linux下通过crontab命令来实现定时任务
    Spark任务踩到的坑
    Hadoop HDFS命令学习笔记
    Spark RDD学习笔记
    HBase的基本操作
    一张图5分钟熟悉MarkDown的基本语法
    C#跨线程操作控件的最简单实现探究
  • 原文地址:https://www.cnblogs.com/kissfu/p/4105635.html
Copyright © 2011-2022 走看看