posts - 262,  comments - 221,  trackbacks - 0

          從 同一個源文件(15M左右)使用不同的方式讀入,一種是讀入后構造成一個String,另外一個是讀入后構造成一個List。然后再調用 writeLines(File, String)和writeLines(File, Collection)寫入。下面是測試比較的結果:

          Read and write by string format
            File sizes(bytes): 15661680
            Content read(bytes): 15661680
            Time costing(ms) on reading: 2047
            Time costing(ms) on writing: 1016


          Read and write by collection format
            File sizes(bytes): 15661680
            File read(lines): 1782615
            Time costing(ms) on reading: 2047
            Time costing(ms) on writing: 533437


          效率相差之多! 我的測試環境如下:

          OS:Win XP SP4
          CPU:Intel Core(TM) 2 Duo CPU
          內存:800M(虛擬機分配)
          JDK:JDK 5.0 (JVM內存分配:-Xms64m -Xmx512m)
          測試文件:15.295M (是一個IP地址文件,總共1782615行)

          在讀方面時間居然相當(這里面應該有操作系統層面的緩沖作用,我單獨地測試時第2個方式總比第一個慢1/3左右)。而在寫方面性能簡直是天壤之別啊:533437/1016 ≈525倍。

          雖然我這個測試還是不嚴謹的,但是從方法實現過程和原理來看,兩者性能差異存在必然的因素:

          ①以Collection方式去構造的,在讀取的過程中生成多個小String,而生成String是一項耗時的工作
          ②以Collection方式去寫的,首先要迭代這個Collection,然后每次調用Collection中的元素的toString()方法,造成多次的堆棧操作





          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2010-03-30 00:19 Paul Lin 閱讀(6064) 評論(0)  編輯  收藏 所屬分類: J2SE
          <2010年3月>
          28123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 洛宁县| 都昌县| 六枝特区| 台北县| 临安市| 策勒县| 荔浦县| 小金县| 嘉定区| 孟州市| 涿鹿县| 安仁县| 淄博市| 监利县| 随州市| 徐闻县| 福鼎市| 光泽县| 冷水江市| 百色市| 安吉县| 荆州市| 禹州市| 瑞昌市| 金川县| 花垣县| 大丰市| 徐水县| 益阳市| 方正县| 托里县| 册亨县| 大余县| 阆中市| 东光县| 广宗县| 瑞昌市| 寻乌县| 集贤县| 渭南市| 许昌县|