码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • jvm直接内存相关文档


    直接内存


    不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。

    直接内存是在Java堆外的、直接向系统申请的内存区间。来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存

    通常访问直接内存的速度会优于Java堆,即读写性能高。出于性能考虑读写频繁的场合可能会考虑使用直接内存。

    Java的NIO库允许Java程序使用直接内存,用于数据缓冲区。

    非直接缓冲区

    读写文件需要与磁盘交互,需要由用户态切换到内核态。在内核态时,需要内存如下图操作。使用IO如图需要两份内存存储重复数据效率低

    直接缓冲区

    使用NIO时操作系统划出的直接缓冲区可以被java代码直接访问,只有一份,NIO适合对大文件读写操作

    直接内存可能导致OutOfMemoryError异常,由于直接内存在java堆外,因此它的大小不会直接受限于-Xmx指定的最大堆大小,但是操作系统内存是有限的,java堆和直接内存的总和依然受限于操作系统最大内存。

    缺点:分配回收成本高,不受JVM内存回收管理

    直接内存大小可以通过MaxDirectMemorySIze设置,如果不指定默认和堆的最大值-Xmx参数一致
     

    直接内存的回收原理

    使用了unsafe对象完成直接内存的分配回收,并且回收需要主动调用freememory方法。
    bytebuffer的实现类的内部,使用了cleaner来检测bytebuffer对象,一旦bytebuffer对象被垃圾回收,那么就会由referencehandler线程通过cleaner的clean方法调用freemermory来释放直接内存
     

    配置直接内存大小(包含元数据内存):

     -XX:MaxDirectMemorySize 

    配置jdk1.8的数据元数据内存(也是使用的直接内存)

    -XX:MaxMetaspaceSize

    1、梳理比较好的文档 

    相关概念

    https://blog.csdn.net/qq_36154832/article/details/112242330

    JVM第十一篇-直接内存_钦拆大仁的博客-CSDN博客_jvm 直接内存

    问题排查:

    一次完整的JVM堆外内存泄漏故障排查记录 - 蛮三刀酱 - 博客园

  • 相关阅读:
    springboot如何实现文件下载呢?
    git撤销还未push的的提交
    Zotero——一款文献管理工具
    win10 自带虚拟机软件 虚拟CentOS系统
    2024水科技大会暨技术装备成果展览会——城镇雨污分流及污水处理提质增效论坛(五)
    第二章 软件测试开发工程师
    C++并发与多线程(4) | 传递临时对象作为线程参数的一些问题Ⅰ
    每日三题 6.29
    LeetCode刷题笔记【27】:贪心算法专题-5(无重叠区间、划分字母区间、合并区间)
    nifi配置mysql_binlog读取
  • 原文地址:https://blog.csdn.net/wppwpp1/article/details/126058648
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号