jvm内存优化方式

打印 上一主题 下一主题

主题 906|帖子 906|积分 2718


 
1. JVM(Java Virtual Machine):
 
    • 定义:Java虚拟机,是运行Java字节码的抽象计算机。
 
    • 内存管理:负责内存的分配和接纳,是JVM内存优化的核心。
 
2. 堆(Heap):
 
    • 定义:JVM用于存放对象实例的内存区域。
 
   
 
        • 堆大小调整:通过调整-Xms(初始堆大小)和-Xmx(最大堆大小)参数来优化堆内存的使用。
 
        • 年轻代(Young Generation)与老年代(Old Generation)比例调整:通过-XX:NewRatio参数来调整年轻代和老年代的比例,以适应不同应用的需求。
 
        • 年轻代内部调整:包罗Eden区与Survivor区的比例调整(-XX:SurvivorRatio),以及是否使用两个Survivor区(-XX:+UseTwoSurvivors)。
 
3. 方法区(Method Area):
 
    • 定义:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
 
    • 优化术语:
 
        • 方法区大小调整:通过-XXermSize(永久代初始大小,Java 8前)或-XX:MetaspaceSize(元空间初始大小,Java 8及以后)参数来调整方法区的大小。
 
4. 栈(Stack):
 
    • 定义:线程私有的内存区域,用于存储局部变量表、操纵数栈、动态链接、方法出口等信息。
 
    • 优化术语:
 
        • 栈大小调整:通过-Xss参数来调整线程的栈大小,以避免栈溢出或浪费内存。
 
5. 垃圾接纳(Garbage Collection, GC):
 
    • 定义:JVM自动接纳不再使用的内存空间的过程。
 
    • 优化术语:
 
        • 垃圾接纳器选择:包罗Serial GC、Parallel GC、CMS GC、G1 GC等,根据应用的特点选择符合的垃圾接纳器。
 
        • 垃圾接纳参数调整:如-XX:+UseG1GC(启用G1垃圾接纳器)、-XX:MaxGCPauseMillis(设置GC的最大停顿时间)、-XX:GCTimeRatio(设置GC时间与应用步调运行时间的比例)等。
 
        • 内存泄漏检测:使用工具(如VisualVM、JProfiler等)检测并修复内存泄漏问题。
 
6. 直接内存(Direct Memory):
 
    • 定义:不是JVM堆内存的一部分,但可以通过Java的NIO类库直接访问的内存区域。
 
  
 
        • 直接内存大小调整:通过-XX:MaxDirectMemorySize参数来限制直接内存的使用量。
 
7. 内存分配与提升策略:
 
    • 定义:JVM如何为新对象分配内存,以及对象何时从年轻代提升到老年代的策略。
 
    
 
        • 对象年事阈值调整:通过-XX:MaxTenuringThreshold参数来调整对象提升到老年代前的年事阈值。
 
        • 大对象直接进入老年代:通过-XXretenureSizeThreshold参数来设置大对象直接进入老年代的阈值。
 
 
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表