读Java性能权威指南(第2版)笔记21_垃圾回收H

JavaGuide面试突击版v2.0高清完整PDF实战指南 唯一不会发生。 阅读详情

 

1. 巨型对象

1.1. humongous object

1.2. 大于等于区域一半大小的对象

1.3. 巨型对象被直接分配在老年代,所以它在新生代回收期间不会被释放

1.4. G1区域的大小是2的幂,最小值是1 MB

1.5. 如果堆的最大值和初始值差别很大,就会有过多的G1区域,这种情况下应该增加G1区域的大小

1.6. -XX:G1HeapRegionSize=N

  • 1.6.1. G1的区域大小

  • 1.6.2. 默认值名义上是0

2. 完全掌控堆的大小

2.1. 堆的默认值取决于机器的内存量

  • 2.1.1. XX:MaxRAM=N标志

2.2. 堆的最大值是MaxRAM的四分之一

2.3. 将32位Windows服务器的MaxRAM值限制为4 GB

2.4. 64位JVM的MaxRAM值限制为128 GB

2.5. 如果机器的物理内存小于MaxRAM的值,堆的默认值就是物理内存的四分之一

2.6. 即使有数百GB的RAM可用,JVM默认使用的内存最大也只有32 GB,即128 GB的四分之一

2.7. Default Xmx = MaxRAM / MaxRAMFraction

2.8. -XX:MaxRAMFraction=N标志

  • 2.8.1. 堆大小的默认最大值

  • 2.8.2. 默认是4

2.9. -XX:ErgoHeapSizeLimit=N标志

  • 2.9.1. 设置JVM应该使用的默认最大值

  • 2.9.2. 默认为0

    • 2.9.2.1. 意思是忽略它
  • 2.9.3. 如果它小于MaxRAM / MaxRAMFraction的值,则将它作为默认最大值

2.10. -XX:MinRAMFraction=N标志

  • 2.10.1. 默认为2

  • 2.10.2. if ((96 MB * MinRAMFraction) > Physical Memory) {

       Default Xmx = Physical Memory / MinRAMFraction; }

  • 2.10.3. 只有192 MB内存的机器上,JVM会将堆的最大值限制为96 MB或者更少

2.11. 堆的初始值

  • 2.11.1. Default Xms = MaxRAM / InitialRAMFraction

  • 2.11.2. InitialRAMFraction标志的默认值是64

  • 2.11.3. 小于-XX:OldSize=N的值(默认是4 MB)与-XX:NewSize=N的值(默认是1 MB)之和,那么新生代和老年代的大小之和将作为堆的初始大小

2.12. 在大多数机器上,堆大小的初始值和最大值的计算相当简单

2.13. 在边界情况下,这些计算可能会相当复杂

3. AggressiveHeap标志

3.1. 默认是false

3.2. 已经不再被推荐了

3.3. 隐藏了实际采用的优化方式,这让我们很难弄清楚JVM到底设置了什么

3.4. 为了更容易设置各种命令行参数

  • 3.4.1. 针对运行单个JVM的、非常大的机器,它会尝试给堆的参数设置合理的值

  • 3.4.2. 在Java的早期版本中引入

3.5. 晋升本地分配缓冲区

  • 3.5.1. promotion-local allocation buffer,PLAB

  • 3.5.2. 每个线程都有这样的区域,在GC 清理分代的过程中会用到

  • 3.5.3. 每个线程都可以将对象晋升到特定的PLAB中,而无须同步

3.6. 在Full GC之前禁用Young GC

3.7. 将GC线程绑定CPU

  • 3.7.1. 在受限的情况下,即当机器上只有GC线程在运行,并且堆非常大时,这样做才有意义
Golang实现企业级AI智能体安全合规自动化检测系统 需求:自动化解析欧盟AI法案、中国网络安全法、美国NIST框架等多国法规,提取具体合规要求并映射到企业技术实现。技术挑战法规文本非结构化,语义复杂,存在大量法律术语与技术术语交叉多语言支持(中文、英文、欧盟24种官方语言)法规动态更新(平均每季度更新2-3次)架构创新性:提出了"规则引擎+AI模型+实时监控"的混合架构,兼顾了合规要求的明确性与智能体行为的动态性。性能突破:通过Golang协程、多级缓存、数据库优化等技术,实现了12,800 req/s的高吞吐量和38ms的低延迟。准确性提升。 阅读详情

相关推荐

华大HC32F460RS485通信实验

华大HC32F460RS485通信实验

ZhuoWuKeJi的博客 1799

Java性能权威指南(第2版)读后总结与感想

语言在不断进化发展、jvm也在不断进化发展,在采用java 8 不变的情况下,使用包含新的垃圾回收算法的jdk,使用新的垃圾回收算法能够获得更好的性能体验。了解不难,学精很难,性能调优不仅仅是技术活,更是一门艺术,需要考虑的场景、判断的条件纷繁复杂,各种开关也会相互影响,使用的不好,还不如采用默认方式。验证、测试自然少不了各种工具,既有原生自带的,也有开源或者商业的第三方工具,在这个方面,介绍的也较详细,能够帮忙我们分析性能问题的源头。有些性能建议是包治百病的,比如,使用更小的对象;

lyingSeven的博客 209

squidpy 教程 1:在 AnnData 和 Squidpy 中导入空间数据

这些是 10x Genomics Visium 的 Space Ranger 输出提供的 keys,因此是第一个被采用的 keys。在这种情况下,我们假设空间坐标与像素具有相同的比例,因此我们将该值设置为 1。为此,我们将使用模拟数据集,并通过示例展示您应该注意的重要细节,以便利用 AnnData-Scanpy-Squidpy 生态系统的全部功能。并不是绝对必要的,但会节省您大量的输入,因为它是 Squidpy 和 Scanpy 的默认值。正如你所看到的,空间坐标被缩小了,图像被“放大”了。

🧑‍🎓 博士研究生在读 🔬 分享生物信息学、神经生物学方面的知识 💬 合作请在后台留言 2256

java必读书籍_最佳5本Java性能调优书籍–精选,必读

java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来。 仅当我在用Java编写的任务关键型服务器端财务应用程序中遇到严重的性能和可伸缩性问题时,我才意识到自己缺乏对性能测量,调试和查找瓶颈的知识,这是我的错误。 的确,当您真正需要它时,您将学习最多,但是那些时间并不是学习基础知识的最佳时间,实际上...

最佳 Java 编程 972

手把手教你用海康威视相机+DLP4500搭建双目结构光系统(附避坑指南)

本文详细介绍了如何使用海康威视相机和DLP4500搭建双目结构光三维测量系统,涵盖硬件选型、系统搭建、双目标定及三维重建等关键步骤。特别针对预算有限的开发者和实验室团队,提供实用的避坑指南和优化技巧,帮助实现0.02mm的高精度测量。

weixin_42526087的博客 462

【AI落地】AI生成测试用例,claude or gpt?(提效至少 50%)

gpt生成测试用例?当然好使啦,用好了提效50%+,用不好就让他变好!

青禾tester 1969

书籍:推荐两本java性能调优

第一本:Java性能优化权威指南 Java性能优化圣经!Java之父重磅推荐! 本书由曾任职于Oracle/Sun的性能优化专家编写,系统而详细地讲解了性能优化的各个方面,帮助你学习Java虚拟机的基本原理、掌握一些监控Java程序性能的工具,从而快速找到程序中的性能瓶颈,并有效改善程序的运行性能。 Java性能优化的任何问题,都可以从本书中找到答案! 下载链接: https://...

Jadeon 2546

51单片机———UART串口通信

传统理解就是信息的传输与交换。单片机与单片机之间,单片机与电脑之间,以及单片机与各式各样的模块之间都可以进行通信。如果没有通信,那么单片机的功能仅仅局限于它本身,它没办法从其他设备获取有用信息,也无法将自己产生的信息告诉其他设备,这样子单片机与外围器件的合作就会收到限制,没办法完成更多的功能,就像一个没办法拓展业务的公司。:实现我们程序当中写的P0=0xFC,就是一次同时对8位进行信号的输出;习惯上,我们还称P0、P1、P2、P3为单片机的4组并行总线:实现低位先发 高位在后。

m0_74225397的博客 3296

java圣经_深入学习Java虚拟机,就看这五本书

程序员书库(ID:OpenSourceTop)综合整理在过去的几年里,许多Java程序员开始越来越多的了解JVM内部以及Java虚拟机内部的工作原理,这种现象在过去的十年里并不常见,但随着并发性、性能等方面的关注度越来越多,JVM内部、垃圾回收和性能调优自然引起重视然后,关于JVM的书籍并不多,本文就和大家盘点一下这方面的书籍,这些书籍适合4~6年Java工作经验的高级Java程序员,记住,不是为...

weixin_39827728的博客 1248

基于YOLOv8深度学习架构的智能农业巡检小车系统—面向农作物与杂草实时精准识别的创新实践

本研究设计并实现了一套基于YOLOv8的智能农业巡检小车系统,解决农田中农作物与杂草的精准识别与追踪问题。系统采用改进YOLOv8-RGCSPELAN-ECA-AFPN模型,融合ECA注意力机制与AFPN多尺度特征融合结构,提升复杂环境下的检测精度。硬件以树莓派4B为核心,集成摄像头、传感器与电机模块,具备避障、循迹与自主导航功能。移动端基于Android部署NCNN推理引擎,实现模型高效移植与实时检测。

Stara-AI的博客 1425

yolov5-6.0的稀疏化训练、结构化剪枝、微调

YOLOv5的BN剪枝、微调

qq_41920323的博客 4394

《Java性能优化权威指南》读书笔记(一)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34390105的博客 209

【Charge】仿真目录

Author: JiJi\textrm{Author: JiJi}Author: JiJi Created Time: 2026.01.20\textrm{Created Time: 2026.01.20}Created Time: 2026.01.20 Modified Time: 2026.01.20\textrm{Modified Time: 2026.01.20}Modified Time: 2026.01.20工作流程材料模型[Charge] 电荷分布与折射率变化理论 [Charge] FDTD

u011699626的博客 314

Java性能调优(总结)

前言   本文结合《Java性能权威指南》一书进行总结,用于Java代码性能调优实战。   改善性能涉及的3种不同活动:性能监控、性能分析、性能调优。 性能监控:非侵入式收集或查看应用运行性能数据的活动。 性能分析:侵入式方式收集性能数据的活动,会影响应用吞吐量或响应性。 性能调优:改善应用响应性或吞吐量而更改参数、源代码或属性配置的活动。 性能分析的两种方法 自顶向下:着眼于软件栈顶层的应用,从上往下寻找优化机会和问题。是最常用的性能调优方法,涉及代码修改也用这招。

Shenkh的Java壁橱 1064

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Jvm+Java+Performance,20.Java Performance.md

20.Java性能优化《Java性能优化权威指南》性能分析的方法自顶向下:通过软件栈顶层的应用,从上往下寻找优化机会和问题自底向上:从软件栈底层的CPU统计数据(如CPU高速缓存未命中率)开始,逐渐上升到应用自身的结构或使用方式,从而发现优化机会收集系统、jvm信息查看进程dumpjstack pid进程id > dump.txt查看IO是否有问题iostat -dx 1主要看%util,...

weixin_33722350的博客 270

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JVM面试题解析与性能调优实战指南

Java虚拟机(JVM)作为Java应用运行的核心环境,其内存管理、垃圾回收机制和类加载体系是开发者必须掌握的基础知识。从分代收集算法到CMS、G1等现代垃圾回收器,JVM通过智能内存分配和自动回收机制显著提升了开发效率。在分布式系统和高并发场景下,合理的JVM参数调优能有效解决内存泄漏、GC停顿等性能瓶颈。通过分析GC日志和使用MAT等工具,工程师可以快速定位元空间溢出、CPU飙高等典型问题。掌握TLAB分配、锁升级等底层原理,不仅能应对技术面试,更能为Kafka、Elasticsearch等中间件的性能

weixin_34005042的博客 431

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

《java性能优化权威指南》---- 第4章:JVM性能监控(JVM常用监控命令jinfo、jps、jmp、jstack、jstat)

文章目录一、`jinfo`二、`jps`三、`jmp`四、`jstack`五、`jstat` 一、jinfo 二、jps 三、jmp 四、jstack 五、jstat

jushisi的博客 709

java idle耗时_Java性能优化权威指南-读书笔记(一)-操作系统性能监控工具

一:CPU1. 用户态CPU是指执行应用程序代码的时间占总CPU时间的百分比。系统态CPU是指应用执行操作系统调用的时间占总CPU时间的百分比。系统态CPU高意味着共享资源有竞争或者I/O设备之间有大量的交互。提高应用性能和扩展性的一个目标就是尽可能降低系统态CPU使用率。2. CPU运行队列就是那些已经准备好运行、正等待可用CPU的轻量级进程。当运行队列长度达到处理器的4倍或者更多时,系统的相应...

weixin_29838739的博客 168

jvm学习参考资料

参考资料 本书名为“深入理解Java虚拟机”,但要想真的深入理解虚拟机,仅凭一本书肯定是远远不够的, 读者可以通过以下方式查找到更多关于Java虚拟机方面的资料。笔者在写作此书的时候,也从下面这 些参考资料中得到过很大的帮助。 1.书籍 ·《Java虚拟机规范》 要学习虚拟机,《Java虚拟机规范》无论如何都是必须读的。这本书的概念和细节描述与Sun的早 期虚拟机(Sun Classic虚拟机)高度吻合,随着技术的发展,高性能虚拟机真正的细节实现方式已经 渐渐与虚拟机规范所描述的方式差距越来越大,如果只能选

qq_40656540的博客 291

C/C++与Java对象创建方式详解与对比

对象是面向对象编程的核心概念。C/C++和Java作为主流语言,虽然都支持对象,但在对象创建、生命周期管理等方面有显著差异。本文将系统梳理这两类语言的对象创建方式,结合权威资料,辅以流程、状态、序列三类Mermaid图表,帮助读者知其然,更知其所以然。C++于1983年由Bjarne Stroustrup开发,旨在在C语言基础上引入面向对象特性。Java由Sun Microsystems于1995年推出,强调平台无关性和自动内存管理。两者在对象管理上各有侧重,反映了不同设计哲学和应用场景。

IT技术学习与工作笔记分享 1067

Java性能优化权威指南-读书笔记(一)-操作系统性能监控工具

一:CPU 1. 用户态CPU是指执行应用程序代码的时间占总CPU时间的百分比。 系统态CPU是指应用执行操作系统调用的时间占总CPU时间的百分比。系统态CPU高意味着共享资源有竞争或者I/O设备之间有大量的交互。 提高应用性能和扩展性的一个目标就是尽可能降低系统态CPU使用率。 2. CPU运行队列就是那些已经准备好运行、正等待可用CPU的轻量级进程。 当运行队列长度达到处理器的4倍或...

weixin_30788731的博客 122

Java 对象返回方式深度解析——空对象 vs null

最佳实践:优先返回空对象,减少 null 使用,提升代码质量。性能权衡:现代 JVM 对象分配成本低,频繁分配才需关注性能。设计理念:空对象模式是主流,Google/阿里等权威手册均推荐。图示理解:通过流程、状态、时序三类图表,深入理解返回对象的全流程与影响。速记口诀:便于实际开发中快速判断和选择。如果你在实际项目中遇到特殊场景或有更深层次的 JVM 性能问题,欢迎补充说明,我可继续深入分析!图文博客示例到此结束。如需原始 mermaid 代码或更多扩展内容,请随时告知!

IT技术学习与工作笔记分享 704

Java八股文:核心知识点与面试必备指南

Java作为主流的面向对象编程语言,其核心知识点包括JVM原理、并发编程和集合框架等,是构建稳定高效系统的技术基础。理解这些原理不仅能优化代码性能,还能解决实际开发中的内存泄漏、高并发等问题。在面试场景中,系统化的Java知识体系尤为重要,掌握如HashMap实现、GC算法等八股文内容,可以帮助开发者深入理解技术本质。本文通过解析面向对象特性、异常处理等基础概念,结合JVM内存管理和线程同步等高级主题,为Java开发者提供全面的学习路径和面试准备策略。

weixin_30635053的博客 657

2021最新Java面试题目,mysql导出表数据csv

HUAWEI-Java一面-1H 闲聊偏多,问的技术性问题比较基础 简单说说面向对象的特征以及六大原则 谈谈final、finally、finalize的区别 Java中==、equals与hashCode的区别和联系 谈谈Java容器ArrayList、LinkedList、**·**HashMap、HashSet的理解,以及应用场景 谈谈线程的基本状态,其中的wait() sleep() yield()方法的区别。 … … HUAWEI-Java二面 -0.5H 问题深入一些,开始加难度

m0_57767600的博客 121

【2024权威实测】IDEA 2023.3.6→2024.1安装兼容性报告:Win11 23H2/Apple M3/MacOS Sonoma/Ubuntu 22.04全平台适配清单

手把手解决IDEA安装难题!提供IDEA安装步骤详细图解,覆盖Win11 23H2、MacOS Sonoma(M3芯片)、Ubuntu 22.04三大平台,实测2023.3.6至2024.1版本兼容性与配置要点,含JDK适配、激活及常见报错解决方案,值得收藏。

InitPulse的博客 104

最强推荐:面试官让我回家等通知,思维导图+源代码+笔记+项目

一、前言 最近刚读完一本书:《Netty、Zookeeper、Redis 并发实战》,个人觉得 Netty 部分是写得很不错的,读完之后又对 Netty 进行了一波很好的复习(之前用 spring boot + netty + zookeeper 模仿 dubbo 做 rpc 框架,那时候是刚学 netty 后自己造的小轮子)。 虽然对于 Netty 的使用已经比较熟悉了,而且还知道它的底层是基于 Java NIO 做进一步的封装,使得并发性能和开发效率得到大大的提升。但是,对于同步阻塞、同步非阻塞、异步这

m0_57501579的博客 166
上一篇: 读Java性能权威指南(第2版)笔记20_垃圾回收G
下一篇: 读Java性能权威指南(第2版)笔记22_ 操作系统工具和Java监控工具
躺柒
博客等级 码龄4年 7004粉丝 1321原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值