时间(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 代码
- package com;
-
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.nio.ByteBuffer;
- import java.nio.channels.FileChannel;
-
- import junit.framework.TestCase;
-
-
-
-
-
-
-
- public class NioDemo extends TestCase {
-
- public void testRead() throws IOException {
-
- int[] sizes = { 10000, 1000, 100, 50, 5, 1 };
-
-
-
- System.out.println(new File("text.txt").length());
-
- for (int i = 0; i < sizes.length; i++) {
-
- int size = sizes[i];
-
- FileInputStream fins = new FileInputStream("text.txt");
-
- FileChannel fc = fins.getChannel();
-
- if (!new File("text2.txt").exists()) {
- new File("text2.txt").createNewFile();
- }
- ByteBuffer buffer = ByteBuffer.allocate(size);
-
- FileOutputStream fouts = new FileOutputStream("text2.txt");
- FileChannel fc2 = fouts.getChannel();
-
- long start = System.currentTimeMillis();
-
- while (true) {
- buffer.clear();
- int r = fc.read(buffer);
- if (r == -1) {
- break;
- }
- buffer.flip();
- fc2.write(buffer);
- }
-
- long end = System.currentTimeMillis();
-
- System.out.println("---------" + size + "---------");
- System.out.println(end - start);
- fc.close();
- fc2.close();
- fins.close();
- fouts.close();
- }
- }
- }
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 代码
- import java.io.*;
- import java.nio.*;
- import java.nio.channels.*;
- public class NIOCopier {
- public static void main(String[] args) throws IOException {
- FileInputStream inFile = new FileInputStream(args[0]);
- FileOutputStream outFile = new FileOutputStream(args[1]);
- FileChannel inChannel = inFile.getChannel( );
- FileChannel outChannel = outFile.getChannel( );
- for (ByteBuffer buffer = ByteBuffer.allocate(1024*1024);
- inChannel.read(buffer) != -1;
- buffer.clear( )) {
- buffer.flip( );
- while (buffer.hasRemaining( )) outChannel.write(buffer);
- }
- inChannel.close( );
- outChannel.close( );
- }
- }
-
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.
分享到:
相关推荐
`io与nio性能测试.txt`文件可能包含了实际运行的性能测试结果,包括平均时间、吞吐量等指标。这种测试可能涉及多次运行,以减少偶然因素的影响。通常,NIO在处理大量数据或并发I/O操作时表现更好,因为它允许程序在...
在实际应用中,Java NIO通常用于高性能的服务器编程,例如在开发聊天服务器、Web服务器或游戏服务器时,可以利用其高效的并发处理能力。然而,NIO的API相对复杂,学习曲线较陡峭,需要花费一定时间去理解和实践。...
在性能对比测试中,实验结果表明,基于NIO的新服务器模型在处理高并发时,平均响应时间仅为2.09毫秒,且CPU占用率保持在68.5%的较低水平。与之相比,传统IO服务器模型在处理并发流量时,不仅性能上无法达到新模型的...
《网络通信测试与Java NIO Socket编程详解》 在信息技术高速发展的今天,网络通信成为了软件开发中的重要一环。为了确保网络应用的稳定性和效率,网络通信测试工具扮演了不可或缺的角色。"默蓝网络通信测试工具(NIO...
"nio-benchmark"显然是一项针对NIO性能的压力测试,旨在评估和优化NIO在高负载环境下的表现。 在进行NIO压力测试时,我们通常关注以下几个核心知识点: 1. **通道(Channels)与缓冲区(Buffers)**:NIO的核心...
### 基于MINA构建高性能的NIO应用 #### 概述 MINA作为一款优秀的客户端/服务器架构下的Java服务器框架,凭借其强大的功能和灵活性,在开发高性能网络应用程序方面表现突出。本文将深入探讨MINA的核心概念、优势...
随后,通过循环伏安法(CV)和恒电流充放电法对NiO/TiO2复合结构的电化学性能进行了测试。 实验结果显示,NiO的沉积量与前驱体液中Ni(NO3)2·6H2O的浓度成正比,随着浓度的增加,比电容值也会相应提升。然而,当浓度...
性能测试流程通常包括四个步骤:性能测试需求分析、性能测试计划、性能测试准备和性能测试执行。在性能测试需求分析阶段,需要确定系统的吞吐量目标、机器性能参数和关联系统。在性能测试计划阶段,需要制定测试计划...
4. 光催化性能的测试:以亚甲基蓝作为目标污染物,在紫外光照射下测试了TiO2/NiO复合中空纳米纤维的催化降解率。光催化是一种利用光能促使特定化学反应进行的过程,TiO2和NiO这两种材料都具有光催化性能。 描述中...
在200℃下用溶剂热的方式将醋酸镍热分解,引入PVP活性剂,得到由3~5nm厚的薄片组成的直径约为100nm NiO中空球,通过改变PVP的...电化学测试NiO中空球具有823mA’h/g的放电容量,而且这些中空球也显示慢的容量衰退速度。
Java NIO是在Java 1.4引入的新特性,它提供了一种非阻塞的I/O模型,极大地提高了程序的并发性能。NIO的核心组件包括: 1. **通道(Channel)**:通道类似于流,但它们可以同时进行读写操作,并且可以与多个缓冲区...
Java NIO(New IO)是Java 1.4版本引入的一个新模块,全称为New Input/Output,是对传统IO API的扩展。它提供了一种更高效、更具选择性的IO操作方式,尤其适用于高并发和大数据处理场景。在这个“java nio 聊天室...
在研究NiO掺杂对菱镁矿烧结性能的影响时,首先要注意到的是,NiO作为一种添加剂,对菱镁矿的烧结性能并非产生单一的线性影响,而是存在一个最佳掺杂量。在一定范围内,NiO的加入可以显著改善菱镁矿的烧结性能,如...
标题中的“网络与nio”指的是Java的非阻塞I/O(Non-blocking Input/Output),它是一种高效的I/O处理...在实践中,需要注意的是,虽然NIO提供了更高的并发性能,但它的编程模型相对复杂,需要更深入的理解和调试技巧。
在“Netty性能测试”中,我们关注的是Netty在处理并发请求时的能力,以及它作为RPC(远程过程调用)框架的表现。 Netty 的高性能主要体现在以下几个方面: 1. **异步IO模型**:Netty采用了NIO(非阻塞I/O)模型,...
而“工具”可能包括构建工具(如Maven,对应的配置文件为pom.xml)、调试工具、性能分析工具等,这些工具可以帮助开发者更有效地管理和维护项目。 【文件名称列表】中的"pom.xml"是Apache Maven项目的配置文件,它...
/** 测试文件下载的NIOServer */ public class NIOServer { static int BLOCK = 4096; // 每次发送的数据块大小 // 处理与客户端的交互 public class HandleClient implements Runnable { // ... } public ...