1. NIO的(New IO流)介绍 JDK4出现NIO。新IO和传统的IO有相同的目的,都是用于进行输入输出的,但新IO使用了不同的方式来处理输入输出,采用内存映射文件的方式,将文件或者文件的一段区域映射到内存中,就可以像访问内存一样的来访问文件了,这种方式效率比旧IO要高很多,但是目前好多地方....
分类:
编程语言 时间:
2015-10-14 17:25:10
阅读次数:
209
内存映射文件提供了Java有可能达到的最快IO操作,故高性能Java应用应使用“内存映射文件”来持久化数据,尤其是对于较大文件来说它确实比I/O流要快很多,但是小文件却未必。内存映射文件可以加载大文件,文件的size上限取决于操作系统(内存的可寻址范围):32位,不能超过4GB,即2^32比特;64...
分类:
编程语言 时间:
2015-09-29 11:21:57
阅读次数:
267
MappedByteBuffer是java nio引入的文件内存映射方案,读写性能极高。在NIO中主要用到普通的输入流,带缓冲的输入流,RandomAccessFile和MappedByteBuffer。现在我们来看看这四种流的效率,废话少说直接上代码。我们采用CRC32来循环冗余校验。CRC32在...
分类:
移动开发 时间:
2015-09-25 18:20:54
阅读次数:
202
本系列前一篇已经分析了lightningmdb的整体架构和主要的数据结构。本文将介绍一下MMAP原理以及lmdb中如何使用它。1.MemoryMap原理内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来..
分类:
数据库 时间:
2015-09-14 08:18:53
阅读次数:
310
文件操作上一篇已经总结了流操作,其中也包括文件的读写。文件系统除了读写以为还有很多其他的操作,如复制、移动、删除、目录浏览、属性读写等。在Java7之前,一直使用File类用于文件的操作。Java7提供了Path,Paths,Files,FileSystem等类,使文件操作变得简单和全面。此外还有很...
分类:
编程语言 时间:
2015-09-05 20:35:32
阅读次数:
292
在做科研,实现一些大数据的算法的时候,经常要调用一些文件的I/O函数,在数据量很大的时候,除了设计的算法和数据结构的耗时以外,其实主要的耗时还是文件的I/O。因为一般常规的方法就是先读出磁盘文件的内容到内存中,然后修改,最后写回到磁盘上。读磁盘文件是要经过一次系统调用,先将文件的内容从磁盘拷贝到内核空间的一个缓冲区,然后再将这些数据拷贝到用户空间,实际上是两次数据拷贝。写回同样也需要经过两次数据拷...
分类:
其他好文 时间:
2015-08-28 17:42:22
阅读次数:
177
Java从1.4开始引进了对于输入输出的改进,相关类位于java.nio包中。新IO主要有以下几个特性:(1)字符集编码器和解码器(2)非阻塞的IO(3)内存映射文件1. 字符集编码器和解码器 Charset类表示不同的字符集,可以使用Charset.forName方法获得指定名称的字符集对象,与....
分类:
编程语言 时间:
2015-08-16 22:50:22
阅读次数:
192
http://blog.csdn.net/renfufei/article/details/41180007#heapdir指定内存映射文件路径名,不能是文件名#heapdirheapdirD:/temp/redis_heapdir/#maxheap指定最大heap字节数,比如10000000#ma...
分类:
Windows程序 时间:
2015-08-06 12:34:44
阅读次数:
3286
Jetty会使用内存映射文件来缓存静态文件,包括js,css文件。 在Windows下,使用内存映射文件会导致文件被锁定,所以当Jetty启动的时候无法在编辑器对js或者css文件进行编辑。 解决办法是更改Jetty默认配置,不适用内存映射文件来做缓存。 解决步骤如下: 1. 找到webdefaul...
分类:
Web程序 时间:
2015-07-28 20:42:35
阅读次数:
286
mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用...
分类:
其他好文 时间:
2015-07-20 12:12:58
阅读次数:
118