Java演进问题之JVM在内存返还策略上会左右为难如何解决

简介: Java演进问题之JVM在内存返还策略上会左右为难如何解决

问题一:为什么JVM在内存返还策略上会左右为难?


为什么JVM在内存返还策略上会左右为难?


参考回答:

因为这些已释放的内存有可能很快就需要被拿来分配新对象,如果频繁进行内存归还,可能会触发page fault,反而导致性能下降。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615287

问题二:G1垃圾回收器在Java 12之前何时会返还内存给操作系统?


G1垃圾回收器在Java 12之前何时会返还内存给操作系统?


参考回答:

在Java 12之前,G1垃圾回收器只有在Full-GC或并发周期期间才能返还内存给操作系统。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615288


问题三:Java 12后的G1垃圾回收器在内存管理上有什么新的改进?


Java 12后的G1垃圾回收器在内存管理上有什么新的改进?


参考回答:

在Java 12后,G1垃圾回收器会在应用不活动的空闲期间定期尝试继续或触发并发循环,以确定整体的Java堆使用情况,并自动将Java堆中未使用的部分返回给操作系统。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615289


问题四:Java 13针对与之前的版本有什么内容升级?


Java 13针对与之前的版本有什么内容升级?


参考回答:

同Java 10一样,Java 13也是一个小升级版本:

• ZGC的增强[20]:同G1和Shenandoah一样,可以将未使用的内存返还给操作系统了

• AppCDS的增强[21]:在Java10的AppCDS基础上支持动态归档,可以在程序退出时自动创建


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615290


问题五:Java 14针对与之前的版本有什么内容升级?


Java 14针对与之前的版本有什么内容升级?


参考回答:

ZGC支持Mac和Windows了(不过大部分生产环境应该不会用这俩)

G1支持Numa-Aware的内存分配:NUMA(Non-Uniform Memory Access,非统一内存访问架构)


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/615291

相关文章
|
28天前
|
Arthas 监控 Java
Arthas memory(查看 JVM 内存信息)
Arthas memory(查看 JVM 内存信息)
71 6
|
4天前
|
Arthas 存储 算法
深入理解JVM,包含字节码文件,内存结构,垃圾回收,类的声明周期,类加载器
JVM全称是Java Virtual Machine-Java虚拟机JVM作用:本质上是一个运行在计算机上的程序,职责是运行Java字节码文件,编译为机器码交由计算机运行类的生命周期概述:类的生命周期描述了一个类加载,使用,卸载的整个过类的生命周期阶段:类的声明周期主要分为五个阶段:加载->连接->初始化->使用->卸载,其中连接中分为三个小阶段验证->准备->解析类加载器的定义:JVM提供类加载器给Java程序去获取类和接口字节码数据类加载器的作用:类加载器接受字节码文件。
25 0
|
4天前
|
存储 缓存 Java
【高薪程序员必看】万字长文拆解Java并发编程!(5):深入理解JMM:Java内存模型的三大特性与volatile底层原理
JMM,Java Memory Model,Java内存模型,定义了主内存,工作内存,确保Java在不同平台上的正确运行主内存Main Memory:所有线程共享的内存区域,所有的变量都存储在主存中工作内存Working Memory:每个线程拥有自己的工作内存,用于保存变量的副本.线程执行过程中先将主内存中的变量读到工作内存中,对变量进行操作之后再将变量写入主内存,jvm概念说明主内存所有线程共享的内存区域,存储原始变量(堆内存中的对象实例和静态变量)工作内存。
19 0
|
2月前
|
存储 分布式计算 监控
阿里云服务器实例经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i详解与选择策略
在阿里云现在的活动中,可选的云服务器实例规格主要有经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i实例,虽然阿里云在活动中提供了多种不同规格的云服务器实例,以满足不同用户和应用场景的需求。但是有的用户并不清楚他们的性能如何,应该如何选择。本文将详细介绍阿里云服务器中的经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i实例的性能、适用场景及选择参考,帮助用户根据自身需求做出更加精准的选择。
|
2月前
|
存储 缓存 算法
JVM简介—1.Java内存区域
本文详细介绍了Java虚拟机运行时数据区的各个方面,包括其定义、类型(如程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区和直接内存)及其作用。文中还探讨了各版本内存区域的变化、直接内存的使用、从线程角度分析Java内存区域、堆与栈的区别、对象创建步骤、对象内存布局及访问定位,并通过实例说明了常见内存溢出问题的原因和表现形式。这些内容帮助开发者深入理解Java内存管理机制,优化应用程序性能并解决潜在的内存问题。
206 29
JVM简介—1.Java内存区域
|
2月前
|
消息中间件 Java 应用服务中间件
JVM实战—2.JVM内存设置与对象分配流转
本文详细介绍了JVM内存管理的相关知识,包括:JVM内存划分原理、对象分配与流转、线上系统JVM内存设置、JVM参数优化、问题汇总。
JVM实战—2.JVM内存设置与对象分配流转
|
2月前
|
缓存 监控 算法
JVM简介—2.垃圾回收器和内存分配策略
本文介绍了Java垃圾回收机制的多个方面,包括垃圾回收概述、对象存活判断、引用类型介绍、垃圾收集算法、垃圾收集器设计、具体垃圾回收器详情、Stop The World现象、内存分配与回收策略、新生代配置演示、内存泄漏和溢出问题以及JDK提供的相关工具。
JVM简介—2.垃圾回收器和内存分配策略
|
2月前
|
消息中间件 Java 应用服务中间件
JVM实战—1.Java代码的运行原理
本文介绍了Java代码的运行机制、JVM类加载机制、JVM内存区域及其作用、垃圾回收机制,并汇总了一些常见问题。
JVM实战—1.Java代码的运行原理
|
2月前
|
Java 数据库
【YashanDB知识库】kettle同步大表提示java内存溢出
在数据导入导出场景中,使用Kettle进行大表数据同步时出现“ERROR:could not create the java virtual machine!”问题,原因为Java内存溢出。解决方法包括:1) 编辑Spoon.bat增大JVM堆内存至2GB;2) 优化Kettle转换流程,如调整批量大小、精简步骤;3) 合理设置并行线程数(PARALLELISM参数)。此问题影响所有版本,需根据实际需求调整相关参数以避免内存不足。
|
4月前
|
存储 设计模式 监控
快速定位并优化CPU 与 JVM 内存性能瓶颈
本文介绍了 Java 应用常见的 CPU & JVM 内存热点原因及优化思路。
770 166

热门文章

最新文章