posts - 262,  comments - 221,  trackbacks - 0
               摘要: Apache commons IO包中提供了一個可以遍歷目錄下資源的DirectoryWalker,還有很多的IOFileFilter用于過濾文件目錄。下面的例子分別演示了這個功能。

          這兩個搜索類都是以內(nèi)部類的方式嵌入客戶端的,客戶端接收客戶的參數(shù),然后通過一個后臺線程來進(jìn)行搜索,等待子線程完成搜索后(join方法),再打印搜索結(jié)果。

          注意這個過程是可以被cancel的。cancel主要有2種情況。外部cancel:外部線程通過調(diào)用內(nèi)部類的cancel()方法。內(nèi)部cancel:在handleDirectory、handleFile中主動拋出CancelException。

          walk方法在每次執(zhí)行前、后都會檢查當(dāng)前是否有cancel指令發(fā)出(checkIfCancelled ---> handleIsCancelled),如果有那么默認(rèn)立刻拋出CancelException,然后調(diào)用handleCancelled方法。  閱讀全文
          posted @ 2010-03-31 23:45 Paul Lin 閱讀(2575) | 評論 (1)編輯 收藏

          從 同一個源文件(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行)

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

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

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



          posted @ 2010-03-30 00:19 Paul Lin 閱讀(6064) | 評論 (0)編輯 收藏
               摘要: 最近在對之前做過的一個項目進(jìn)行二期修改。鑒于之前典型的貧血結(jié)構(gòu),以及Controller--->Service--->DAO模式讓代碼壓力都集中在service層的情況。在參考了Banq寫的幾篇對象職責(zé)和Domain Event的文章后,我也試著搗鼓了一下新的分層模式。貼出來和大家討論,歡迎拍磚!  閱讀全文
          posted @ 2010-03-23 17:05 Paul Lin 閱讀(1588) | 評論 (0)編輯 收藏
               摘要:   閱讀全文
          posted @ 2010-03-19 23:11 Paul Lin 閱讀(575) | 評論 (0)編輯 收藏
               摘要:   閱讀全文
          posted @ 2010-03-19 22:21 Paul Lin 閱讀(1533) | 評論 (0)編輯 收藏
               摘要: Spring對事務(wù)傳播的定義和事務(wù)操作性能優(yōu)化  閱讀全文
          posted @ 2010-03-15 11:09 Paul Lin 閱讀(2618) | 評論 (0)編輯 收藏
               摘要: 樂觀鎖定采用的版本策略實際上和SVN的版本沖突解決方案是同樣的:采用其它人的(先提交的)、采用自己的(后提交的)、合并他人和自己的(合并沖突更新)
          悲觀鎖定(Pessimistic locking)會采用基于數(shù)據(jù)庫提供的鎖機制來進(jìn)行鎖定。它會在物理層對行甚至表進(jìn)行鎖定。使得應(yīng)用的并發(fā)性變差。  閱讀全文
          posted @ 2010-03-15 11:07 Paul Lin 閱讀(1503) | 評論 (0)編輯 收藏
               摘要: READ COMMITITED:不允許讀取未提交的數(shù)據(jù),但可以讀取已提交的數(shù)據(jù)。所以可能出現(xiàn)不可重復(fù)讀、和幻像讀(讀的過程依然可以被修改、增加、刪除)


          REPEATABLE READ:通過行鎖定,在讀的數(shù)據(jù)不允許其它進(jìn)程修改。確保已讀取的數(shù)據(jù)不被修改、刪除(不可重復(fù)讀)但無法阻止其它進(jìn)程寫入新數(shù)據(jù),所以不能確保讀取到新的數(shù)據(jù)(幻像讀)

          SERIALIZABLE:通過表鎖定,徹底禁止讀取期間其它進(jìn)程的修改、刪除(屏蔽不可重復(fù)讀)和增加(屏蔽幻像讀)

          但是不管是那種隔離級別,對第一類丟失更新都是不能接收的  閱讀全文
          posted @ 2010-03-15 11:04 Paul Lin 閱讀(1079) | 評論 (0)編輯 收藏
               摘要: 一級、二級緩存使用的key均為po的主鍵ID,value即為po實例對象,查詢緩存使用的則為查詢的條件(hql轉(zhuǎn)化而成的sql語句)、查詢的參數(shù)、查詢的頁數(shù),value有兩種情況,如果采用的是select po.property這樣的方式那么value為整個結(jié)果集,如采用的是from這樣的方式那么value為獲取的結(jié)果集中各po對象的主鍵ID,這樣的作用很明顯,節(jié)省內(nèi)存。  閱讀全文
          posted @ 2010-03-15 11:00 Paul Lin 閱讀(4094) | 評論 (0)編輯 收藏
               摘要: 關(guān)于Memcached入門知識點  閱讀全文
          posted @ 2010-03-15 10:57 Paul Lin 閱讀(2280) | 評論 (0)編輯 收藏
          僅列出標(biāo)題
          共26頁: First 上一頁 2 3 4 5 6 7 8 9 10 下一頁 Last 
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 汶川县| 明水县| 泰宁县| 绥阳县| 白沙| 西盟| 桂林市| 古交市| 日土县| 莲花县| 攀枝花市| 新疆| 杭锦旗| 柳州市| 广元市| 常熟市| 繁昌县| 桐庐县| 珲春市| 池州市| 芦溪县| 阿拉善盟| 林甸县| 东光县| 吉木乃县| 澎湖县| 横山县| 浦江县| 衡水市| 康乐县| 永安市| 天气| 义马市| 牙克石市| 永川市| 唐山市| 禹州市| 修文县| 基隆市| 阿城市| 新乡县|