<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Change Dir

    先知cd——熱愛(ài)生活是一切藝術(shù)的開(kāi)始

    統(tǒng)計(jì)

    留言簿(18)

    積分與排名

    “牛”們的博客

    各個(gè)公司技術(shù)

    我的鏈接

    淘寶技術(shù)

    閱讀排行榜

    評(píng)論排行榜

    Rope與StringBuilder的簡(jiǎn)單比較

    最近看了這篇文章 http://www.ibm.com/developerworks/cn/java/j-ropes/?S_TACT=105AGX52&S_CMP=techcsdn

    作者比較了String和StringBuffer與Rope結(jié)構(gòu)的常用操作速度。并以實(shí)驗(yàn)證明了Rope的性能。我在自己的機(jī)器上實(shí)驗(yàn),同樣也證明了Rope的高效,但是作者沒(méi)有用StringBuilder和Rope做比較,所以我們不妨一試。
    暫時(shí)的實(shí)驗(yàn)結(jié)果表明,就append和delete操作而言,StringBuilder勝過(guò)Rope,那么Rope的真正優(yōu)勢(shì)在哪里呢?時(shí)間倉(cāng)促,沒(méi)有深入研究,特此立一文,以后細(xì)看其結(jié)構(gòu)~~~

    我的測(cè)試代碼如下:

     1/**
     2 * 
     3 */

     4import java.io.*;
     5import java.util.*;
     6
     7import org.ahmadsoft.ropes.*;
     8
     9/**
    10 * @author Jia Yu
    11 * @date 2010-1-25
    12 */

    13public class Test2 {
    14
    15    /**
    16     * @param args
    17     */

    18    public static void main(String[] args) {
    19        // TODO Auto-generated method stub
    20
    21        int max = 100000;
    22        String eq = "";
    23        Rope r = Rope.BUILDER.build("");
    24        StringBuffer sb = new StringBuffer("");
    25        StringBuilder sb2 = new StringBuilder("");
    26
    27        double st = System.nanoTime();
    28        for (int i = 0; i < max; i++{
    29            eq += "h";
    30        }

    31        double ed = System.nanoTime();
    32        System.out.println(ed - st);
    33
    34        st = System.nanoTime();
    35        for (int i = 0; i < max; i++{
    36            sb.append("h");
    37            // sb.deleteCharAt(0);
    38        }

    39        ed = System.nanoTime();
    40        System.out.println((double) ed - (double) st);
    41
    42        st = System.nanoTime();
    43        for (int i = 0; i < max; i++{
    44            sb2.append("h");
    45            // sb2.deleteCharAt(0);
    46        }

    47        ed = System.nanoTime();
    48        System.out.println((double) ed - (double) st);
    49
    50        st = System.nanoTime();
    51        for (int i = 0; i < max; i++{
    52            r.append("h");
    53        }

    54        ed = System.nanoTime();
    55        System.out.println((double) ed - (double) st);
    56    }

    57}

    58


    結(jié)果如下:
    1.6120785922E10
    1.0273193E7
    2647639.0
    9781992.0
    只從數(shù)量級(jí)比較的話(huà),String的低效就不說(shuō)了,畢竟基于Char[]實(shí)現(xiàn)的,而StringBuffer比StringBuilder慢也可以理解,畢竟加入了同步的考慮,也算是為線程安全付出的代價(jià),但是所謂的樹(shù)型機(jī)制的Rope還是比不過(guò)StringBuilder啊~~~

    Rope for Java 下載:點(diǎn)擊這里。
    這里附加了文章中的測(cè)試代碼:點(diǎn)擊這里。

    posted on 2010-01-25 15:20 changedi 閱讀(2224) 評(píng)論(4)  編輯  收藏 所屬分類(lèi): Java技術(shù)

    評(píng)論

    # re: Rope與StringBuilder的簡(jiǎn)單比較[未登錄](méi) 2010-01-25 17:49 dennis

    Rope for java也是線程安全的,同步開(kāi)銷(xiāo)少不了。你拿它跟StringBuilder比就不大合適。  回復(fù)  更多評(píng)論   

    # re: Rope與StringBuilder的簡(jiǎn)單比較[未登錄](méi) 2010-01-25 17:51 Jason

    Rope還是比不過(guò)StringBuilder,Rope是同步的,StringBuilder不是同步的,性能上,當(dāng)然要差一點(diǎn)。  回復(fù)  更多評(píng)論   

    # re: Rope與StringBuilder的簡(jiǎn)單比較[未登錄](méi) 2010-01-25 18:19 changedi

    原來(lái)如此啊~~~~
    怪不得原文作者不比較呢~~~
    看來(lái)有必要認(rèn)真研究一下了~~
      回復(fù)  更多評(píng)論   

    # re: Rope與StringBuilder的簡(jiǎn)單比較 2010-01-27 23:47 leekiang

    為什么有StringBuilder不用卻要去用Rope,不累嗎  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 一级做a爰片久久毛片免费看 | 无码免费一区二区三区免费播放 | 亚洲一级毛片免费观看| 亚洲第一成年男人的天堂| 国产精品久久久亚洲| 亚洲精品成人网站在线观看| 亚洲熟妇丰满多毛XXXX| 久久精品亚洲综合专区| 久久亚洲成a人片| 久久久婷婷五月亚洲97号色 | 日本xxwwxxww在线视频免费| 亚洲人成免费网站| 亚洲成电影在线观看青青| 中文字幕亚洲综合久久男男| 亚洲最大av无码网址| 国产亚洲一区二区三区在线| 亚洲bt加勒比一区二区| 亚洲第一永久在线观看| 亚洲综合色7777情网站777| 亚洲色欲色欱wwW在线| 国产99久久亚洲综合精品| 四虎精品成人免费视频| 鲁丝片一区二区三区免费 | 香蕉视频免费在线播放| 一级特级女人18毛片免费视频| 中国精品一级毛片免费播放| 99精品在线免费观看| 69成人免费视频无码专区| 免费少妇a级毛片人成网| 亚洲色欲久久久综合网| 亚洲高清无在码在线无弹窗 | 亚洲欧洲精品在线| 亚洲另类无码专区丝袜| 无码免费又爽又高潮喷水的视频| 中出五十路免费视频| 中国xxxxx高清免费看视频| 丰满人妻一区二区三区免费视频| 男的把j放进女人下面视频免费| 亚洲一级毛片免费看| 国产免费av一区二区三区| 亚洲精品成人网站在线观看 |