ä»?
åŒä¸€ä¸ªæºæ–‡äšg(15Må·¦å³)使用ä¸åŒçš„æ–¹å¼è¯»å…¥ï¼Œä¸€¿U是è¯Õd…¥åŽæž„é€ æˆä¸€ä¸ªStringåQŒå¦å¤–一个是è¯Õd…¥åŽæž„é€ æˆä¸€ä¸ª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
效率相差之多! 我的‹¹‹è¯•环境如下åQ?br />
OSåQšWin XP SP4
CPUåQšIntel Core(TM) 2 Duo CPU
内å˜åQ?00M(虚拟机分é…?
JDKåQšJDK 5.0 (JVM内å˜åˆ†é…åQ?Xms64m -Xmx512m)
‹¹‹è¯•æ–‡äšgåQ?5.295M (是一个IPåœ°å€æ–‡äšgåQŒæ€Õd…±1782615è¡?
在读斚w¢æ—‰™—´å±…然相当(˜q™é‡Œé¢åº”该有æ“作¾pÈ»Ÿå±‚é¢çš„缓冲作用,我å•独地‹¹‹è¯•时第2ä¸ªæ–¹å¼æ€ÀL¯”½W¬ä¸€ä¸ªæ…¢1/3å·¦å³)ã€‚è€Œåœ¨å†™æ–¹é¢æ€§èƒ½½Ž€ç›´æ˜¯å¤©å£¤ä¹‹åˆ«å•Šï¼š533437/1016 â‰?25å€ã€?/font>
虽然我这个测试还是ä¸ä¸¥è°}的,但是从方法实现过½E‹å’ŒåŽŸç†æ¥çœ‹åQŒä¸¤è€…性能差异å˜åœ¨å¿…ç„¶çš„å› ç´ ï¼š
①以Collectionæ–¹å¼åŽÀLž„é€ çš„åQŒåœ¨è¯Õd–的过½E‹ä¸ç”Ÿæˆå¤šä¸ªž®StringåQŒè€Œç”ŸæˆString是一™å¹è€—时的工ä½?br />
②以Collectionæ–¹å¼åŽÕd†™çš„,首先è¦è„P代这个CollectionåQŒç„¶åŽæ¯‹Æ¡è°ƒç”¨Collectionä¸çš„å…ƒç´ çš„toString()æ–ÒŽ³•åQŒé€ æˆå¤šæ¬¡çš„å †æ ˆæ“ä½?/font>