posts - 262,  comments - 221,  trackbacks - 0

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

          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


          效率相差之多! 我的測試環(huán)境如下:

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

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

          雖然我這個測試還是不嚴謹?shù)模菑姆椒▽崿F(xiàn)過程和原理來看,兩者性能差異存在必然的因素:

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





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

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 河西区| 元阳县| 祁东县| 建阳市| 汽车| 罗城| 罗山县| 通州市| 岳普湖县| 曲松县| 新龙县| 焉耆| 洪江市| 土默特左旗| 岳西县| 隆昌县| 洛川县| 黄浦区| 舟山市| 延津县| 乐山市| 唐河县| 会宁县| 新巴尔虎右旗| 青龙| 西乡县| 大邑县| 吉安市| 图片| 思茅市| 休宁县| 吴忠市| 登封市| 清河县| 元谋县| 巨鹿县| 崇阳县| 永仁县| 阿拉善右旗| 横山县| 裕民县|