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左右)。而在寫方面性能簡直是天壤之別?。?33437/1016 ≈525倍。

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

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





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

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 云林县| 明光市| 望城县| 富平县| 三穗县| 奉贤区| 福贡县| 都匀市| 阜康市| 栖霞市| 四会市| 聂拉木县| 诸暨市| 宁乡县| 洞口县| 麻城市| 罗定市| 谷城县| 巩义市| 天长市| 丹东市| 临西县| 紫云| 奎屯市| 天门市| 郎溪县| 徐水县| 安岳县| 乐清市| 澎湖县| 揭西县| 牙克石市| 阿克| 彭泽县| 腾冲县| 彩票| 友谊县| 海口市| 奇台县| 辉南县| 兰溪市|