• 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


  • 相关阅读:
    再看到一则有关Anders的……
    arp好烦!123.8w8w8w,自己建了一个内网的nod32升级服务器。
    在看discuz nt 1.0。
    顺便说一下,这边速度好快?
    没什么可说。
    昨天看王建硕的blog,在说《胡适日记》的事。
    c# 深复制 浅复制(转)
    foreach yield
    Array
    JQuery.fn.extend(object) jQuery.extend(object) 转
  • 原文地址:https://www.cnblogs.com/kissfu/p/4105635.html
Copyright © 2020-2023  润新知