GitHub获120k+star的阿里内网“疯传”葵花宝典JVM虚拟机调优指南

LangGraph 持久化:程序退出后接着跑,用 SQLite 跨进程恢复任务 用 SQLite 保存 LangGraph 待审批任务,先退出 Python 进程,再用相同 thread_id 恢复。附完整脚本、实测结果与拒绝、错任务号、内存后端、重复恢复四个反例。 阅读详情

jvm性能调优都做了什么? JVM性能调优有很多设置,这个参考JVM参数即可. 主要调优的目的:

  1. 控制GC的行为.GC是一个后台处理,但是它也是会消耗系统性能的,因此经常会根据系统运行的程序的特性来更改GC行为

  2. 控制JVM堆栈大小.一般来说,JVM在内存分配上不需要你修改,(举例)但是当你的程序新生代对象在某个时间段产生的比较多的时候,就需要控制新生代的堆大小.同时,还要需要控制总的JVM大小避免内存溢出

  3. 控制JVM线程的内存分配.如果是多线程程序,产生线程和线程运行所消耗的内存也是可以控制的,需要通过一定时间的观测后,配置最优结果

今天给大家带来了一份阿里内网号称“葵花宝典”的jvm虚拟机性能调优指南手册:

​

下面会直接给大家展示出本书的部分内容截图需要获取的小伙伴可以直接转发+关注后私信(学习)即可免费获取! 内容总览: Java性能的误解

​

​

jvm入门

​

​

​

操作系统

​

​

​

性能测试模式

​

​

性能测量

​

​

​

垃圾收集

​

​

​

​

​

g1

​

字节码

​

​

Java语言性能

​

并发性能技术

​

​

剖析

​

​

图谱后端选型:Memgraph vs Neo4j vs 嵌入式 SQLite,什么时候该切换? 本文通过脚本自动探测代码图谱规模,对比SQLite、Memgraph与Neo4j在不同节点量级下的性能表现。实测表明:10万节点内嵌入式SQLite凭借低延迟和轻量部署仍具竞争力;超15万节点后,Memgraph适合低延迟、高并发场景;而Neo4j仅在百万级图谱且需复杂查询时才具备优势。配套提供一键测试延迟与平滑迁移后端的Python工具链,实现按需选型与无缝切换。 阅读详情

相关推荐

stm32开发3D打印机(一)——介绍(已完成)

如何运用stm32开发3D打印机

Nico_jion的博客 1万+

GitHub 获 120k+star 的阿里内网“疯传”葵花宝典 JVM 虚拟机调优指南

控制 GC 的行为.GC 是一个后台处理,但是它也是会消耗系统性能的,因此经常会根据系统运行的程序的特性来更改 GC 行为控制 JVM 堆栈大小.一般来说,JVM 在内存分配上不需要你修改,(举例)但是当你的程序新生代对象在某个时间段产生的比较多的时候,就需要控制新生代的堆大小.同时,还要需要控制总的 JVM 大小避免内存溢出控制 JVM 线程的内存分配.如果是多线程程序,产生线程和线程运行所消耗的内存也是可以控制的,需要通过一定时间的观测后,配置最优结果。

weixin_70730532的博客 273

STK相关总结

STK简介 一.SIM卡应用工具包(SIM Application Toolkit),又名CAT/USAT,它包含一系列终端与SIM卡的交互指令,SIM卡可以应用卡内的小应用程序和终端交互,从而实现增值服务的目的,STK包括三种类,STK-imsi切换,STK –OTA,STK-BIP 功能: (1) Profile download:配置下载,开机初始化SIM卡过程中,终端告诉SIM卡终端支持哪些功能,STK中download指终端将数据发送给SIM卡 (2) Proactive command: 主动式

jingjing_2的博客 3357

从零学 JVM(一):什么是 JVM?JVM、JDK、JRE 有什么区别?

JVM(Java虚拟机)是执行Java字节码的运行环境,负责类加载、字节码执行与内存管理。Java通过javac编译为平台无关的字节码,由各平台的JVM解释或即时编译执行,实现“一次编译,到处运行”的跨平台特性。JVM并非跨平台,但其规范支持多种语言(如Kotlin、Scala)编译为字节码运行。JDK包含JRE,JRE包含JVM,三者构成完整的开发与运行体系。Java采用编译+解释+JIT优化的混合执行机制,兼顾启动速度与运行效率。

2403_87560480的博客 282

N5105核显直通PVE:从黑屏到HDMI输出的完整指南

PCI直通能让虚拟机独占物理设备,但核显直通远没有独显那么轻松。Intel核显与CPU、显示输出链路的强耦合使UEFI引导、GOP驱动、驱动签名等环节都成了黑屏陷阱。在PVE虚拟化环境中,通过IOMMU开启、vfio-pci绑定、OVMF固件和Q35机型配合,可以绕过KVM检测,让Windows虚拟机正确驱动核显,从HDMI口输出画面,并解锁Intel Quick Sync硬解能力。这种方案尤其适合N5105等低功耗迷你主机,可作为客厅HTPC、本地视频硬解或依赖硬件加速的轻量工作台。本文基于N5105平台

weixin_31082403的博客 378

linux操作系统使用以太网连接ubuntu,设置固定ipv4

首先,您需要确定要配置的网络接口。可以使用ifconfig -a或ip addr命令来列出当前系统上的所有网络接口及其相关信息。找到您要配置的网络接口名称,例如eth0、ens33或enp0s3;保存并关闭文件后,您需要重启网络服务以使更改生效。在linux操作系统中,要使用交换机连接以太网可以直接使用交互界面;如果你的操作系统没有交互界面,你可以使用命令方式配置;点击ipv4,方式为手动,可以设置ip和子网了;开头,后接网络接口名称。第三步:点击有线最右边圆形控件;第二步:点击有线设置;

2301_79311842的博客 2405

内存数据库SQLite

本文以“黑板”比喻内存数据库,对比传统硬盘数据库,详解 SQLite 使用 :memory: 实现高速临时存储的原理与优势。通过动态占位符生成、executemany 批量操作等技巧,实现毫秒级数据读写,适用于单元测试、临时计算与隐私保护场景。强调其瞬时性与内存限制,提醒开发者注意数据量控制与安全防护,突出参数化查询防注入的核心价值。

看了都说刑的博客 351

ArcGIS标注太乱?手把手教你用‘要素分类标注’搞定河流分级显示

本文详细介绍了如何在ArcGIS Pro中使用要素分类标注功能实现河流分级显示,解决标注混乱问题。通过数据预处理、分类标注规则定义和高级参数调优,帮助用户打造层次分明、专业清晰的水系地图,提升地图信息传达效率。

weixin_30326741的博客 474

从零学 JVM(三):Java 对象是如何创建的?从 new 到对象初始化

本文以 HotSpot JVM 为例,详解 new User("Tom") 的完整创建过程:先进行类加载检查,再分配内存(指针碰撞或空闲列表),随后零值初始化,设置对象头,执行实例初始化 <init>(),最后返回引用。对象在堆中由对象头、实例数据和对齐填充三部分构成。为保证线程安全,JVM 采用 CAS 重试或 TLAB(线程本地分配缓冲区)机制,避免多线程竞争导致的内存分配冲突。

2403_87560480的博客 240

倍福ADS通讯协议深度解析——从握手到数据包的完整旅程

本文以工程师视角,通过Wireshark抓包实战,深度解析了倍福ADS通讯协议的完整工作流程。从TCP三次握手建立连接,到拆解AMS/TCP信封、AMS Header地址与命令解析,再到ADS Data读写请求的载荷构成,完整呈现了一次数据通讯的“旅程”。文章重点剖析了协议包格式,并结合实际案例,提供了基于协议分析的故障排查思路,帮助开发者深入理解并精准调试工业自动化系统通讯。

weixin_29231725的博客 152

Python之ae-toolbox包语法、参数和实际应用案例

ae-toolbox(全称 after-effects-toolbox)是 Python 生态中专门用于 Adobe After Effects(AE)自动化操作 的工具包,基于 AE 的 ExtendScript(JSX)桥接技术,实现 Python 与 AE 的跨语言通信。

王国平的博客 1174

JVM中的GC垃圾回收器

同时,引入ZGC:可伸缩的低延迟垃圾回收器(Experimental)。删除CMS垃圾回收器,并弃用Parallel Scavenge和Serial Old的组合。1999年随JDK1.3.1一起来的是串行方式的Serial GC,它是第一款GC。有了虚拟机,就一定需要收集垃圾的机制,这就是Garbage Collection,对应的产品称为Garbage Collector。2018年3月,JDK 10中G1垃圾回收器的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟。2020年9月,JDK15发布。

记录一点 407

【机器人技术基础】MATLAB Robotics Toolbox PUMA560 运动学正逆解

机器人技术基础实验2报告 1. 实验目的和要求 2. 实验手段 2.1 实验原理 2.2 函数详解 3. 实验主要内容 4. 实验结果和分析 4.1 正运动学求解 例1 例2 4.2 逆运动学求解 例1 例2 1. 实验目的和要求 掌握常见形式的机器人的D-H坐标系建立方法、运动学建模; 正逆运动学分析与求解; 使用Robotics Toolbox对直角坐标机器人、圆柱坐标机器人、球坐标机器人、PUMA560其中之一建立运动学模型,正逆求解和仿真。 2. 实验手段 2.1

【人工智障 | 计算鸡视觉 | 机器孩】 1万+

智学文枢:题目管理页

题目管理页是「智学文枢」的数据基座入口,用一个 10 列的 QTableWidget 承载学生级习题的筛选、搜索、CRUD 与自动流水线触发,其核心难点不是"画表格",而是把"前端过滤 + Store 信号刷新 + 组合题父子展示 + 懒加载规避"组织成一条不卡 UI 的渲染管线。

caixuwen的专栏 302

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

当 LLM 遇上 JVM:一个把自主性给满,一个把自主性收回

本文剖析阿里AgentScope Java与Rod Johnson主导的Embabel在JVM上对“下一步由谁决定”的根本分歧:前者让LLM自主决策,后者由代码规划器(GOAP/A*)确定流程。这一分歧衍生出四大维度差异:类型安全——Embabel以类型驱动编排,实现编译期校验;编程手感——AgentScope更自然,Embabel需显式定义动作;企业能力——Embabel支持可预测、可审计的确定性流程;可测试性——Embabel因控制流固定而易于单元测试。二者非优劣之分,而是面向不同场景的哲学选择。

cause的博客 279

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

DeepSeek总结的 SQLite 某些 double 值的最后一位与 Python 不同

2 不能整除 10,所以转换是混乱的。然而,在这种情况下,由于它是完美的 2 的幂,那个舍入残留实际上是正确的。但你必须理解,超过第 15 位小数,对于这些特定数字来说,更多的是副作用,而不是预期行为。归根结底,你在这里看到的差异最直接地可以称为 SQLite 的“错”,因为它不同,但它以一种聪明的方式不同——至少是一种主要面向人类而非计算机的聪明方式。而且,如果作为开发者的你试图使用已转换为十进制字符串的数字进行数学运算,那是更大的错。据你所知,它们存储的是完全相同的值,只是打印例程输出它们的方式不同。

l1t的专栏 450

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Mandate持久化实测:nonce落盘之后,进程重启再也撕不开重放窗口

Mandate授权系列第⑦篇,直接修上一篇发现的最大残留风险。上一篇实测:nonce缓存只在内存,进程重启后窗口期内逐字节重放成功。本篇把nonce、Mandate、revoke三类安全状态落盘SQLite,重跑攻击:重启后重放被拒(R1)、Mandate重载验签有效且越界仍拦(R2)、revoke重启后仍生效(R3),内存版对照重启后重放照样成功(R4)。安全状态的生命周期必须覆盖进程的生命周期。

weixin_39885962的博客 503

ERP单据已作废为什么商品仍不能删除,引用检查与软删除怎么查

ERP销售单作废后,商品引用仍可能保留。本文用真实Store和内存SQLite对照无引用、草稿引用及作废引用,核对删除确认、deleted标记和列表过滤范围。

qq_52097248的博客 337

JavaEE(7)JVM

本文系统介绍JVM核心机制:基于HotSpot(JDK8)阐述其执行流程、运行时数据区(堆、方法区、栈等)、类加载双亲委派模型及破坏场景;重点解析垃圾回收原理,包括可达性分析、四种引用、三大算法与分代收集思想,并对比常见收集器特性,涵盖Minor/Full GC差异与并发并行策略,为性能调优与内存问题排查提供理论基础。

2502_93175209的博客 346

Java多线程(7):异步编程详解——Future、CompletableFuture与任务编排

前面的文章已经介绍过线程池、JUC 同步工具、CAS 与原子类,以及锁机制。一个请求需要调用多个服务,部分调用可以并行执行,部分调用又依赖前一个调用的结果,如何组织这些异步任务?以订单详情为例,需要查询用户、价格、库存和推荐内容。其中用户、价格、库存互不依赖;推荐内容则依赖用户信息。线程池解决了任务由谁执行,Future提供了异步结果的获取方式;本篇进一步学习如何在任务完成后自动处理结果、表达任务依赖和汇总多个结果。前文已经介绍过FutureTask,这里不重复线程池参数及其内部实现。本文以JDK 8。

作为一个长者,有必要记录下人生经验 387

ThreadLocal 搭配线程池为什么会造成内存泄漏?

清理,属于“被动清理”,并不能保证及时回收。这类问题在用户身份、租户 ID、事务上下文、链路追踪 ID 等场景中后果非常严重,排查起来也远比 OOM 困难。,对应的 value 就会一直无法被回收,最终表现为内存泄漏,甚至引发脏数据串号问题。所以线程池不是“制造”了泄漏,而是把原本短暂的持有时间拉长成了“与线程同寿命”。线程池中的核心线程会被长期复用、几乎不会销毁,于是挂在。在“一个请求一个线程”的传统模型里,线程执行完任务就结束,,同时警惕线程复用带来的数据串号风险。只要线程活着,这条链就断不了。

2603_95090839的博客 192
上一篇: GitHub榜一大哥!竟是Alibaba内部被疯狂转载的Spring全能指南?
下一篇: 曾经风靡一时的阿里内网Redis开发参考手册,GitHub再次重温经典
javaYY_
博客等级 码龄4年 148粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值