所谓 直接的关系指的是与底层操作系统的关系。
直接 非直接内存的概念与NIO有非常大的关联;
磁盘IO --> 直接内存[系统内核态] --> 非直接(堆)内存[用户态] --> 直接内存[系统内核态] --> 磁盘IO
磁盘IO --> 系统直接内存 --> 磁盘IO
读写文件时可以直接申请堆外内存。
内存管理的成本增加,由于没有自动回收机制的管理,使用不当可能造成内存溢出。
我们知道直接内存直接使用操作系统内存,避免了反复的拷贝。
直接内存的使用通过:allocateDirect创建,需要注意的时,直接内存的申请成本比申请普通堆内存更大;
基于以上特性,直接内存在文件较大时会有不错的表现,由于申请开销问题,当操作海量的小文件时我们就需要慎重考虑是否使用直接内存了,此时还会带来内存碎片化的问题。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/bokerr/article/details/121986598
内容来源于网络,如有侵权,请联系作者删除!