`
wutao8818
  • 浏览: 608424 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

测试NIO性能

    博客分类:
  • io
阅读更多

时间(ms)
文件大小(byte)
Buffer(byte)
434
603900
10000
0
0
1000
0
46
100
0
188
50
0
281
5
0
2406
1
47
12000

java 代码
 
  1. package com;   
  2.   
  3. import java.io.File;   
  4. import java.io.FileInputStream;   
  5. import java.io.FileOutputStream;   
  6. import java.io.IOException;   
  7. import java.nio.ByteBuffer;   
  8. import java.nio.channels.FileChannel;   
  9.   
  10. import junit.framework.TestCase;   
  11.   
  12. /**  
  13.  * NIO read write test  
  14.  *   
  15.  * @author wutao  
  16.  *   
  17.  */  
  18. public class NioDemo extends TestCase {   
  19.   
  20.     public void testRead() throws IOException {   
  21.   
  22.         int[] sizes = { 1000010001005051 };   
  23.   
  24.         // Arrays.sort(sizes);   
  25.   
  26.         System.out.println(new File("text.txt").length());   
  27.   
  28.         for (int i = 0; i < sizes.length; i++) {   
  29.   
  30.             int size = sizes[i];   
  31.   
  32.             FileInputStream fins = new FileInputStream("text.txt");   
  33.   
  34.             FileChannel fc = fins.getChannel();   
  35.   
  36.             if (!new File("text2.txt").exists()) {   
  37.                 new File("text2.txt").createNewFile();   
  38.             }   
  39.             ByteBuffer buffer = ByteBuffer.allocate(size);   
  40.   
  41.             FileOutputStream fouts = new FileOutputStream("text2.txt");   
  42.             FileChannel fc2 = fouts.getChannel();   
  43.   
  44.             long start = System.currentTimeMillis();   
  45.   
  46.             while (true) {   
  47.                 buffer.clear();   
  48.                 int r = fc.read(buffer);   
  49.                 if (r == -1) {   
  50.                     break;   
  51.                 }   
  52.                 buffer.flip();   
  53.                 fc2.write(buffer);   
  54.             }   
  55.   
  56.             long end = System.currentTimeMillis();   
  57.   
  58.             System.out.println("---------" + size + "---------");   
  59.             System.out.println(end - start);   
  60.             fc.close();   
  61.             fc2.close();   
  62.             fins.close();   
  63.             fouts.close();   
  64.         }   
  65.     }   
  66. }   

 

Book Cover

Java™ I/O, 2nd Edition
By Elliotte Rusty Harold
...............................................
Publisher: O'Reilly
Pub Date: May 2006
Print ISBN-10: 0-596-52750-0
Print ISBN-13: 978-0-59-652750-1
Pages: 726

java 代码
 
  1. import java.io.*;   
  2. import java.nio.*;   
  3. import java.nio.channels.*;   
  4. public class NIOCopier {   
  5.   public static void main(String[] args) throws IOException {   
  6.     FileInputStream inFile = new FileInputStream(args[0]);   
  7.     FileOutputStream outFile = new FileOutputStream(args[1]);   
  8.     FileChannel inChannel = inFile.getChannel( );   
  9.     FileChannel outChannel = outFile.getChannel( );   
  10.     for (ByteBuffer buffer = ByteBuffer.allocate(1024*1024);   
  11.     inChannel.read(buffer) != -1;   
  12.     buffer.clear( )) {   
  13.       buffer.flip( );   
  14.       while (buffer.hasRemaining( )) outChannel.write(buffer);   
  15.     }   
  16.     inChannel.close( );   
  17.     outChannel.close( );   
  18.   }   
  19. }   
  20.   

 

In a very unscientific test, copying one large (4.3-GB) file on one platform (a dual 2.5-GHz PowerMac G5 running Mac OS X 10.4.1) using traditional I/O with buffered streams and an 8192-byte buffer took 305 seconds. Expanding and reducing the buffer size didn't shift the overall numbers more than 5% and if anything tended to increase the time to copy. (Using a one-megabyte buffer like Example 14-1's actually increased the time to over 23 minutes.) Using new I/O as implemented in Example 14-1 was about 16% faster, at 255 seconds. A straight Finder copy took 197 seconds. Using the Unix cp command actually took 312 seconds, so the Finder is doing some surprising optimizations under the hood.

 

 

分享到:
评论

相关推荐

    java nio与io性能测试

    NULL 博文链接:https://ilrxx.iteye.com/blog/1051402

    nio压力测试

    nio-benchmark 性能压力测试

    NiO纳米电池材料的制备及电化学性能研究

    在200℃下用溶剂热的方式将醋酸镍热分解,引入PVP活性剂,得到由3~5nm厚的薄片组成的直径约为100nm NiO中空球,通过改变PVP的...电化学测试NiO中空球具有823mA’h/g的放电容量,而且这些中空球也显示慢的容量衰退速度。

    NIO.rar_NIO

    NIO,sun的new I/O,由此可以实现高性能的服务器。本源码只用来做测试,如果要真正用到项目中,可能还需要参考其它更多的东西,比如MINA

    Xmemcached测试实例

    测试类包括Xmemcached客户端与memcached client for java两者,可运行比较性能。 XMemcached简介: XMemcached是基于 java nio的Memcached客户端,java nio相比于传统阻塞 io 模型来说,有 效率高(特别在高并发下...

    Gatling实用技术 ----高性能轻量级压力测试工具

    Gatling的Scala基础封装是基于Akka编程的,它是非阻塞异步编程模型,可以高效执行并有极高的容错率。... 原生支持NIO,并发性能很好,即使性能较差的电脑也能发起很大的负载压力。  基于HTML的报表,简单易读。

    从NIO到Netty,编程实战出租车905协议-08172347.pdf

    第4章,实现长连接客户端,以及采用多线程技术进行系统性能测试; 第5章,介绍Netty相关基础知识,并使用Netty实现长连接服务端的编码。 适用人群 具有一定的Java开发基础; 学习Java开发领域Spring框架之外的东西...

    反复浸渍法制备NiO及电化学性能研究* (2012年)

    以NaOH为沉淀剂,NiCl2为前驱体采用反复浸渍法合成了Ni(OH)2,在300...电化学性能测试:以10mA进行恒流充放电测试,起始容量为455F/g;随着循环次数的增加,比容量减小,200次后稳定于415F/g(为初始容量的91.2%)。

    NiO晶粒尺寸对SOFC阳极电化学性能的影响 (2004年)

    阻抗谱测试表明,含纳米尺寸NiO的复合材料的极化电阻更小,电导率更高。以质量分数为55%的NiO-YSZ为阳极材料,并将其封接成单电池。结果表明,含纳米尺寸NiO的复合阳极制成的单电池,其输出功率更高,短路电流更大。...

    files-clamav-cloud-performance:一组用于衡量云中文件 IO 和 clamav 性能的测试

    文件-clamav-cloud-performance 一组测试,用于在云中使用 clamav 测量文件(磁盘和内存)的性能。两种类型的测试带有 clamfs 的常规文件系统 - 所有对磁盘的访问都通过 clamav 对应用程序透明带有 clamavj 的 Java ...

    Li4Ti5O12/NiO复合材料的制备及其电化学性能 (2012年)

    通过X线衍射仪、扫描电镜和X线能谱仪对所得材料进行物理结构、形貌和成分分析,采用恒流充放电和循环伏安测试研究材料的电化学性能。结果表明,Li4Ti5O12/NiO(5%)复合材料具有最佳的循环可逆性能,适量的NiO可有效改善...

    氮气退火对NiO/ZnO:A1薄膜PN结的影响* (2012年)

    使用UV-1700型分光光度计、KEITHLEY4200-SCS半导体测试仪、JSM-6490LV型扫描电子显微镜等分析氮气退火对NiO/ZnO:A1薄膜性能的影响。实验结果表明:500℃退火范围内,NiO薄膜的透过率随退火温度的升高单调上升,500℃...

    Java性能优化实战视频全集

    基准测试JMH,精确测量方法性能.mp4 06 案例分析:缓冲区如何让代码加速.mp4 07 案例分析:无处不在的缓存,高并发系统的法宝.mp4 08 案例分析:Redi如何助力秒杀业务.mp4 09 案例分析:池化对象的应用场景.mp4 ...

    NiCo2O4的合成及其阳极电解水性能的研究

    以乙二醇为溶剂、氢氧化钠为反应沉淀剂,采用共沉淀法合成了Co3O4和NiO金属氧化物粉末以及纳米介孔NiCo2O4尖晶石氧化物,并对所合成的阳极催化剂进行了表面形貌和物化性能测试。通过悬浊液包衣的方法将催化剂附着到Ti...

    CH4三自热重整制合成气催化剂的制备与性能

    用ICP-AES进行Ni、Mg、Al元素分析,BET法测试催化剂比表面积,XRD表征催化剂物相,H2-TPR表征催化剂活性中心。考察了原料气组成为n(CH4)∶n(CO2)∶n(H2O)∶n(O2)=1∶0.5∶1.8∶0.1时催化剂在750℃、0.1MPa条件下CH4三...

    纳米TiO2对Mg2Nio.75Cro.25合金储氢动力学性能的改善 (2004年)

    纳米 Ti02颗粒对M92Nio.75Cro.25合金储氢动力学性能的提高具有催化作用,降低了M 92N ip. 75 Cro. 25合金的吸、放氢温度,使纳米复合材料氢化生成焓明显降低。对纳米复合材料的储氢性能测试结果表明:添加1.5%(质量分数...

    Netty权威指南

    在开始本节之前,我先讲一个亲身...另一个项目组直接使用Netty作为NIO服务端,业务的定制开发工作量非常小,测试表明,功能和性能都完全达标,项目组几乎没有在NIO服务端上花费额外的时间和精力,项目进展也非常顺利。

    反应蒸发沉积NiO

    利用WO3和NiO的互补显色可以大大提高电致变色玻璃的变色效率。有关WO3薄膜的制备方法及其性能已有许多文献作了报道。已报道的NiOx薄膜常用金属镍的射频反应溅射或电子束反应蒸发方法制备。前者沉积速率较慢,电致...

    联通SGIP1.2短信网关 发送接收短信皆可 可以应对高并发

    - 下行短信(发送短信给手机用户),里面有两种方式发送短信,一种是Socket,一种是NIO,NIO的性能较高 - 上行短信(接收手机用户的短信),实际是接收联通短信中心SMG发过来的信息,为了应对高并发的场景,使用了生产者和消费...

    V1.95 Ti0.5 Cr0.5 NiO0.05AlxFey(x,y=0~0.0 5)贮氢合金的组织结构和电化学性能* (2014年)

    通过X射线衍射、金相显微镜和电化学测试等手段研究了添加不同含量的Al和Fe对合金显微组织和电化学性能的影响。结果表明,所有合金均由BCC结构的V基固溶体主相和TiNi基第二相组成。电化学测试表明,增加Al含量后,...

Global site tag (gtag.js) - Google Analytics