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


  • 相关阅读:
    ipv6现状,加英文的中括号访问, ipv6测试http://test-ipv6.com
    从30岁至35岁:为你的生命多积累一些厚度
    delete
    国内投行的工资
    南京大学行业求职研究报告——投资银行篇
    【oracle案件】ORA-19502,ORA-27072
    多线程第四篇秒杀 一个经典的多线程同步问题
    霍夫的图像处理变换(线检测算法)
    hadoop-ha组态
    央视公然诽谤Linux操作系统,谁报告?
  • 原文地址:https://www.cnblogs.com/kissfu/p/4105635.html
Copyright © 2011-2022 走看看