java 板


LINE

http://www.idryman.org/blog/2013/09/28/java-fast-io-using-java-nio-api/ 最近換工作,開始寫hadoop & java 學了一些新東西就開始寫java相關的部落格文章了 這一篇是我用java nio把一個資料讀取的時間從194秒壓到0.16秒 底層API的威力果然不同凡響啊... 簡而言之,java nio是 New IO 的縮寫 裡面支援bulk copy還有asynchronous read/write 如果有用C寫過fread, fseek, rewind等功能的話 對nio的介面應該會感到相當熟悉 我只有用到基本的bulk copy 進階的mmap或是async io因為效能目標已經達到就沒研究了 範例code長這樣:(syntax highlight請進blog看) public static void readIPFromNIO() throws IOException{ FileInputStream fis = new FileInputStream(new File("ip.bin")); FileChannel channel = fis.getChannel(); ByteBuffer bb = ByteBuffer.allocateDirect(64*1024); bb.clear(); ipArr = new int [(int)channel.size()/4]; System.out.println("File size: "+channel.size()/4); long len = 0; int offset = 0; while ((len = channel.read(bb))!= -1){ bb.flip(); //System.out.println("Offset: "+offset+"\tlen: "+len+"\tremaining:"+bb.hasRemaining()); bb.asIntBuffer().get(ipArr,offset,(int)len/4); offset += (int)len/4; bb.clear(); } } --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 108.205.154.230
1F:推 gmoz:推NIO o_o 10/03 14:25
2F:→ gmoz:比較舊的CPU是不是沒有DMA? 10/03 14:29
3F:→ iterator:要不要再想想看, 你前兩個比較組是不是真的那麼慢? 10/03 16:25
4F:→ iterator:消耗的時間,真的都在於 java.io 與 java.nio 的差距上嗎? 10/03 16:27
5F:→ sbrhsieh:這樣的數據真的有點聳動,我認為幾十倍的差距還是有的 10/03 16:32
6F:推 cowbaying:1212倍... 10/03 16:42
7F:推 AI3767:NIO看來不錯用 ^^ 10/04 01:50
8F:推 jerry74:NIO是non-blocking IO 不是New IO... 10/06 16:08
9F:推 popcorny:NIO確實是New IO唷 10/06 17:05
10F:→ Killercat:大多數人用nio package都是為了non blocking才有此誤解 10/08 19:54
11F:→ Killercat:我自己也是誤解了很長一段時間 XD nio包內很多東西 10/08 19:55







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP