码迷,mamicode.com
首页 > 编程语言 > 详细

java nio/io性能比较

时间:2014-07-16 18:55:14      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   使用   

  在看mina的时候看到java的nio。

  详细的java nio 请看传送门:http://www.ibm.com/developerworks/cn/education/java/j-nio/index.html

  以前项目上传附件自定义缓冲区方式代码

  

OutputStream os = client.storeFileStream(new String(newFileName.getBytes("GBK"),"ISO-8859-1"));

            byte buf[] = new byte[8192];
            int bytesRead = data.read(buf);
            Float filesize = 0f + bytesRead;
            while (bytesRead != -1) {
                os.write(buf, 0, bytesRead);
                bytesRead = data.read(buf);
                filesize = filesize + bytesRead;
            }

自己大概测试了一下上传10M的附件这种方式用时大概为22751ms。

  使用nio修改后代码

  

 ReadableByteChannel fcin = Channels.newChannel(data);
             WritableByteChannel fcout =  Channels.newChannel(os);
            Float filesize = (float) data.available();
            ByteBuffer buffer = ByteBuffer.allocate(8192);
            while(true){
                 buffer.clear();
                int r = fcin.read(buffer);
                if (r==-1) {
                    break;
               }
                buffer.flip();
                fcout.write( buffer );
            }

自己大概测试了一下上传10M的附件这种方式用时大概为19743ms。

大概快了3m左右,提高了用户体验。使用nio是个不错的选择。

更多nio参考请见:http://docs.oracle.com/javase/7/docs/api/java/nio/channels/Channels.html

出处:http://www.cnblogs.com/Feeling-always-wrong/
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

 

java nio/io性能比较,布布扣,bubuko.com

java nio/io性能比较

标签:style   blog   http   java   color   使用   

原文地址:http://www.cnblogs.com/Feeling-always-wrong/p/3844959.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!