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


  • 相关阅读:
    Chrome 29 新功能一览
    7 款免费的 Metro UI 模板
    JPG渐进 & PNG/PNG24 交错测试
    你的钱,以后是放银行还是放支付宝?
    Bise IE6 在你的网站上加上它让IE滚蛋吧
    单例模式常见场景
    10 个最新的开发者工具
    大流量网站的底层系统架构
    DNS解析全过程及原理
    IE条件注释详解
  • 原文地址:https://www.cnblogs.com/kissfu/p/4105635.html
Copyright © 2011-2022 走看看