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

相关文章
|
15天前
|
安全 索引
操作系统中的内存管理策略
【8月更文挑战第23天】
40 1
|
17天前
|
缓存 Java
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
|
7天前
|
安全 Java 程序员
Java编程中实现线程安全的策略
【8月更文挑战第31天】在多线程环境下,保证数据一致性和程序的正确运行是每个程序员的挑战。本文将通过浅显易懂的语言和实际代码示例,带你了解并掌握在Java编程中确保线程安全的几种策略。让我们一起探索如何用同步机制、锁和原子变量等工具来保护我们的数据,就像保护自己的眼睛一样重要。
|
26天前
|
存储 算法 Java
JVM自动内存管理之垃圾收集算法
文章概述了JVM内存管理和垃圾收集的基本概念,提供一个关于JVM内存管理和垃圾收集的基础理解框架。
JVM自动内存管理之垃圾收集算法
|
26天前
|
存储 Java 程序员
JVM自动内存管理之运行时内存区
这篇文章详细解释了JVM运行时数据区的各个组成部分及其作用,有助于理解Java程序运行时的内存布局和管理机制。
JVM自动内存管理之运行时内存区
|
8天前
|
IDE Java 测试技术
揭秘Java高效编程:测试与调试实战策略,让你代码质量飞跃,职场竞争力飙升!
【8月更文挑战第30天】在软件开发中,测试与调试对确保代码质量至关重要。本文通过对比单元测试、集成测试、调试技巧及静态代码分析,探讨了多种实用的Java测试与调试策略。JUnit和Mockito分别用于单元测试与集成测试,有助于提前发现错误并提高代码可维护性;Eclipse和IntelliJ IDEA内置调试器则能快速定位问题;Checkstyle和PMD等工具则通过静态代码分析发现潜在问题。综合运用这些策略,可显著提升代码质量,为项目成功打下坚实基础。
26 2
|
8天前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
13 1
|
10天前
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
|
12天前
|
存储 安全 Java
Java 后台开发中的数据安全策略
Java 后台开发中的数据安全策略
24 3
|
16天前
|
存储 缓存 NoSQL
Redis内存管理揭秘:掌握淘汰策略,让你的数据库在高并发下也能游刃有余,守护业务稳定运行!
【8月更文挑战第22天】Redis的内存淘汰策略管理内存使用,防止溢出。主要包括:noeviction(拒绝新写入)、LRU/LFU(淘汰最少使用/最不常用数据)、RANDOM(随机淘汰)及TTL(淘汰接近过期数据)。策略选择需依据应用场景、数据特性和性能需求。可通过Redis命令行工具或配置文件进行设置。
32 2
下一篇
DDNS