`
JavaSam
  • 浏览: 952148 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA 性能提升之 MappedByteBuffer(内存映射)

    博客分类:
  • JAVA
 
阅读更多

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;

public class LargeMappedFiles {

	static int length = 0x8FFFFFF;//128M
	public static void main(String[] args) {
		try {
			MappedByteBuffer out = new RandomAccessFile("test.txt", "rw").getChannel().map(FileChannel.MapMode.READ_WRITE, 0, length);
			for(int i = 0 ; i < length ; i ++){
				out.put((byte)i);
			}
			System.out.println("Finished writing");
			for(int i = length/2 ; i < length/2 + 6 ; i ++){
				System.out.println((char)out.get(i));
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
 
0
0
分享到:
评论

相关推荐

    深入浅出MappedByteBuffer.pdf

    总结起来,MappedByteBuffer利用了操作系统级别的内存映射功能,实现了Java程序对大文件的高效访问,减少了系统开销,提升了程序性能。对于处理大量数据或大文件的Java应用,使用MappedByteBuffer是优化IO操作的一个...

    java 深入理解内存映射文件原理

    在Java中,使用内存映射文件通常通过java.nio包中的MappedByteBuffer类实现。通过FileChannel的map()方法,可以将文件映射到内存,从而提高大文件处理的性能。例如,以下代码展示了如何使用内存映射文件读取10MB的...

    Java内存映射 大文件轻松处理

    这种方式极大地提升了处理大文件的性能,因为内存映射文件通常利用操作系统级别的缓存机制,减少了对物理内存的直接压力,并且避免了频繁的磁盘读写。 内存映射文件的基础是虚拟内存。虚拟内存是一种内存管理技术,...

    MemMapComm:代码存储库,用于使用Java的内存映射文件测试IPC

    3. **性能提升**:内存映射文件的优势在于,它利用了操作系统层面的缓存机制,减少了I/O操作,提高了数据读写速度。 **在Java中使用内存映射文件进行IPC:** 1. **打开文件通道**:首先需要通过`FileChannel`类的...

    文件高速传输读写 客户端服务端

    本主题聚焦于Java平台下如何实现高效的文件操作,特别是利用内存映射(MappedByteBuffer)进行读写和通过网络进行文件传输。以下是相关的知识点详解: 1. **内存映射文件(MappedByteBuffer)**: 内存映射文件是...

    java nio 包读取超大数据文件

    ### Java NIO 处理超大数据文件的知识点详解 ...综上所述,使用Java NIO处理超大数据文件时,关键是利用好内存映射文件技术和合理的数据读取策略,通过适当的分块和数据解析方法,可以有效地提升读取速度和处理能力。

    java读取超大文本文件

    对于需要随机访问或文件特别大的情况,推荐使用`RandomAccessFile`和`FileChannel`的组合,特别是利用`MappedByteBuffer`进行内存映射文件读取。这种方式能够显著提高文件的读取速度,因为数据直接从磁盘映射到内存...

    Java CSV批量导出工具类

    例如,使用内存映射文件(MappedByteBuffer)可以减少磁盘I/O,提高读写速度;利用Java 8的Stream API可以简化代码并进行并行处理;还可以考虑使用异步IO(AsynchronousFileChannel)来提高并发性能。 6. **错误...

    mmapcom:内存映射文件实用程序库,用于存放更大尺寸的文件

    而`mmapcom`库利用了Java的`java.nio.MappedByteBuffer`类,该类提供了内存映射文件的功能,可以将文件的一部分或全部映射到内存中,从而减少了磁盘I/O次数,提升了读写速度。 `mmapcom`库的使用步骤大致如下: 1....

    Java NIO中四大核心组件的使用详解

    Java NIO中的MappedByteBuffer类就是用来实现内存映射文件的。 在实际应用中,Java NIO可以用于网络编程(如服务器端的多客户端连接处理)、文件操作(大文件读写)等领域。通过合理利用NIO的特性,我们可以编写出...

    java-instantcode-developing.rar_java nio

    4. **内存映射文件(MappedByteBuffer)**:Java NIO提供了一种高效访问大文件的方式,即内存映射文件。通过映射文件到内存,可以直接通过内存操作文件,减少了磁盘I/O的开销。 5. **非阻塞模式**:与传统的阻塞IO...

    java利用替换Excel2007中sheet方式导出excel,支持大数据量

    4. 利用内存映射文件(MappedByteBuffer):对于极大数据,可以使用内存映射文件直接将数据写入硬盘,减少内存拷贝。 总之,通过合理的设计和使用如Apache POI这样的库,Java开发者可以在不牺牲性能的前提下,有效...

    Java I/O系统

    在处理大量数据时,`FileChannel`和`MappedByteBuffer`提供了内存映射文件的功能,允许高效地读写大文件,直接操作内存中的文件映射区域,减少了系统调用的开销。 此外,Java NIO(New Input/Output)是Java 1.4...

    Java.nio

    例如,可以使用MappedByteBuffer进行内存映射文件操作,将文件内容直接映射到内存,提高大文件读写的效率。 另外,Java.nio还包含网络通信相关的类,如SocketChannel和ServerSocketChannel,它们支持TCP和UDP协议,...

    Java方法排序五百万数据

    2. 文件管理:为了节省磁盘空间,可以使用内存映射文件(MappedByteBuffer)或磁盘缓冲区(FileChannel)来处理大文件。 3. 分区策略:选择合适的分区策略能提高效率,例如,可以选择基于哈希的分区方式,将相似值的...

    基于Java的源码-二进制IO类与文件复制操作实例.zip

    7. **内存映射文件(Memory-Mapped File)**:对于大文件操作,Java还提供了MappedByteBuffer,它可以将文件映射到内存,使得文件操作如同访问内存一样高效。 8. **NIO(New IO)**:Java NIO提供了一种非阻塞的IO...

    java io读取文件

    8. **内存映射文件(Memory-Mapped File)** - Java的`MappedByteBuffer`类允许将文件映射到内存,使得文件操作如同访问内存一样快速,适合处理大型文件。 9. **大数据量文件读取策略** - **分块读取**:对于大...

    java 细节代码收集 供自己查看

    如果文件较大,可能需要使用`FileChannel`和内存映射文件(MappedByteBuffer)来提高性能。 对于源码分析,Java的反射API允许在运行时检查类、接口、字段和方法的信息,甚至动态调用方法。这对于工具开发、插件系统...

    Java NIO 中英文版 + Pro Java 7 NIO.2

    5. **文件系统操作**:NIO提供FileChannel,可以高效地进行文件读写操作,包括映射文件到内存(MappedByteBuffer)。 6. **管道(Pipes)**:管道是两个线程之间进行单向数据传输的通道,用于线程间通信。 7. **...

Global site tag (gtag.js) - Google Analytics