<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java mmap

    文檔

    java mmap

    mmap是將一個文件或者其它對象映射進內存,文件被映射到多個頁上,如果文件的大小不是所有頁的大小之和,最后一個頁不被使用的空間將會清零。mmap在用戶空間映射調用系統中作用很大。
    推薦度:
    導讀mmap是將一個文件或者其它對象映射進內存,文件被映射到多個頁上,如果文件的大小不是所有頁的大小之和,最后一個頁不被使用的空間將會清零。mmap在用戶空間映射調用系統中作用很大。

    java mmap是什么,讓我們一起了解一下?

    mmap是將一個文件或者其它對象映射進內存,文件被映射到多個頁上,如果文件的大小不是所有頁的大小之和,最后一個頁不被使用的空間將會清零。mmap在用戶空間映射調用系統中作用很大。

    目前Java提供的mmap只有內存文件映射,其他IO操作還沒有內存映射功能。

    Java內存映射文件(Memory Mapped Files)就已經在java.nio包中,但它對很多程序開發者來說仍然是一個相當新的概念。引入NIO后,Java IO已經相當快,而且內存映射文件提供了Java有可能達到的最快IO操作,這也是為什么那些高性能Java應用應該使用內存映射文件來持久化數據。

    mmap在Java中的用途是什么?

    1、對普通文件使用mmap提供內存映射I/O,以避免系統調用(read、write、lseek)帶來的性能開銷。同時減少了數據在內核緩沖區和進程地址空間的拷貝次數。

    2、使用特殊文件提供匿名內存映射。

    3、使用shm_open以提供無親緣關系進程間的Posix共享內存區。

    mmap在Java中是如何使用的?(具體參考kafka源碼中的OffsetIndex這個類)

    操作文件,就相當于操作一個ByteBuffer一樣。

    public?class?TestMmap?{undefined
    public?static?String?path?=?"C:\\Users\\64371\\Desktop\\mmap";
    public?static?void?main(String[]?args)?throws?IOException?{undefined
    File?file1?=?new?File(path,?"1");
    RandomAccessFile?randomAccessFile?=?new?RandomAccessFile(file1,?"rw");
    int?len?=?2048;
    //?映射為2kb,那么生成的文件也是2kb
    MappedByteBuffer?mmap?=?randomAccessFile.getChannel().map(FileChannel.MapMode.READ_WRITE,?0,?len);
    System.out.println(mmap.isReadOnly());
    System.out.println(mmap.position());
    System.out.println(mmap.limit());
    //?寫數據之后,JVM?退出之后會強制刷新的
    mmap.put("a".getBytes());
    mmap.put("b".getBytes());
    mmap.put("c".getBytes());
    mmap.put("d".getBytes());
    //?System.out.println(mmap.position());
    //?System.out.println(mmap.limit());
    //
    //?mmap.force();
    //?參考OffsetIndex強制回收已經分配的mmap,不必等到下次GC,
    unmap(mmap);
    //?在Windows上需要執行unmap(mmap);?否則報錯
    //?Windows?won't?let?us?modify?the?file?length?while?the?file?is?mmapped
    //?java.io.IOException:?請求的操作無法在使用用戶映射區域打開的文件上執行
    randomAccessFile.setLength(len/2);
    mmap?=?randomAccessFile.getChannel().map(FileChannel.MapMode.READ_WRITE,?0,?len/2);
    //?A?mapping,?once?established,?is?not?dependent?upon?the?file?channel
    //?that?was?used?to?create?it.?Closing?the?channel,?in?particular,?has?no
    //?effect?upon?the?validity?of?the?mapping.
    randomAccessFile.close();
    mmap.put(128,?"z".getBytes()[0]);
    }
    //?copy?from?FileChannelImpl#unmap(私有方法)
    private?static?void?unmap(MappedByteBuffer?bb)?{undefined
    Cleaner?cl?=?((DirectBuffer)bb).cleaner();
    if?(cl?!=?null)
    cl.clean();
    }
    }

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java mmap

    mmap是將一個文件或者其它對象映射進內存,文件被映射到多個頁上,如果文件的大小不是所有頁的大小之和,最后一個頁不被使用的空間將會清零。mmap在用戶空間映射調用系統中作用很大。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java mockito java modelandview java module java monad java mono java mqtt java multiset java mvvm java mybatisplus java namespace java newinstance java nextint java nextline java nexus java nfs java geotools java getbytes java hashcode java hdfs java node類 java mkdir java mina java mian java method java merge java memcpy java matrix java matlab java math.ceil java mapping java malloc java main java logstash java logging java localtime java locale java list.contains java list.add java linq java linklist
    Top 精品国产污污免费网站入口在线| 久久伊人精品一区二区三区| 久久国产亚洲精品| 亚洲色精品88色婷婷七月丁香| 国产精品玖玖玖在线资源| 久久只有这里的精品69| 中日韩精品视频在线观看| 国产高清国产精品国产专区| 日本精品VIDEOSSE×少妇| 香蕉久久夜色精品国产| 亚洲精品成人网站在线播放| 99热这里只有精品在线| 国产亚洲蜜芽精品久久| 98精品国产综合久久| 国产a∨精品一区二区三区不卡| 九九九国产精品成人免费视频| 亚洲精品久久无码| 亚洲精品中文字幕麻豆| 国产成人精品高清在线观看93| 2022免费国产精品福利在线| 国语自产偷拍精品视频偷| 精品国产伦一区二区三区在线观看| 国产三级久久久精品麻豆三级 | 99久久精品国产亚洲| 久久久无码精品亚洲日韩软件| 国产精品电影久久久久电影网| 国产成人精品免费视频大全麻豆| 亚洲精品国产成人专区| 中文字幕精品无码一区二区三区| 一本色道久久88综合日韩精品 | 国产精品久久久久久久久久久搜索| 亚洲国产成人91精品| 人人妻人人澡人人爽人人精品| 精品国产污污免费网站| 精品久久国产一区二区三区香蕉 | 精品无码国产污污污免费网站国产| 国产美女精品人人做人人爽| 九九99久久精品国产| 97视频热人人精品免费| 精品久久久久久中文字幕大豆网| 2022国产精品手机在线观看|