首页
个人开发
工作相关
共享
搜索
登录
搜索
colo
欲买桂花同载酒
累计撰写
1823
篇文章
累计收到
0
条评论
首页
栏目
首页
个人开发
工作相关
共享
Java性能调优
2025-12-13
诊断和解决Java应用中由大对象分配导致的长GC停顿问题
解决长GC停顿问题的关键步骤:通过GC日志和堆转储确认大对象分配问题优化堆内存结构:增加G1的Region大小(-XX:G1HeapRegionSize)调整新生代/老年代比例代码层面:避免在热点路径分配大对象使用对象池或内存复用考虑ZGC/Shenandoah等低延迟收集器
2025年-12月-13日
4 阅读
0 评论
Java性能调优
2025-12-13
Java中String、StringBuilder和StringBuffer的主要区别是什么?在什么场景下应该使用它们?
主要区别:String:不可变对象,每次修改都会创建新对象,适合存储常量或少量字符串操作StringBuilder:可变对象,非线程安全,性能最高,适合单线程环境下的频繁字符串操作StringBuffer:可变对象,线程安全(synchronized方法),性能低于StringBuilder,适合多线程环境下的字符串操作使用场景:优先使用StringBuilder(单线程),多线程共享时用StringBuffer,不修改的字符串用String。
2025年-12月-13日
4 阅读
0 评论
Java性能调优
2025-12-9
诊断和优化Java应用中由内存碎片导致的长时间Full GC停顿
解决内存碎片导致的Full GC停顿需要综合策略:确认碎片问题:通过GC日志分析晋升失败和压缩操作优化对象分配:避免大对象和长期存活对象交错分配调整GC策略:切换到G1 GC或调整CMS参数内存布局优化:使用-XX:ObjectAlignmentInBytes对齐大对象监控验证:使用JFR和VisualVM验证优化效果
2025年-12月-9日
4 阅读
0 评论
Java性能调优
2025-12-9
循环中字符串拼接的性能优化
在循环中使用+拼接字符串会导致性能问题,因为每次操作都会创建新的String对象。优化方案:使用StringBuilder替代+操作符预估容量初始化StringBuilder(可选)避免在循环内重复创建StringBuilder
2025年-12月-9日
4 阅读
0 评论
Java性能调优
2025-12-9
诊断和优化高并发场景下的Java应用长时间GC停顿问题
解决高并发场景下的长时间GC停顿需要综合策略:诊断工具:使用GC日志、JFR、堆转储分析确定停顿原因收集器选择:优先选用G1或ZGC等低延迟收集器内存优化:合理设置堆大小、调整分代比例、避免内存泄漏并发控制:优化对象创建模式,减少竞争参数调优:精细调整GC线程、停顿时间目标等关键参数
2025年-12月-9日
4 阅读
0 评论
Java性能调优
2025-12-9
诊断和解决高并发场景下CMS GC导致的长时间Full GC停顿
解决CMS GC长时间停顿的核心要点:根本原因:并发模式失败(Concurrent Mode Failure)和晋升失败(Promotion Failure)诊断工具:GC日志分析(-XX:+PrintGCDetails)结合jstat实时监控关键调优:增加老年代空间(-Xmx/-Xms)降低对象晋升速率(-XX:MaxTenuringThreshold)调整CMS触发阈值(-XX:CMSInitiatingOccupancyFraction)启用并行标记(-XX:+CMSParallelInitialMarkEnabled)终极方案:迁移到G1或ZGC(-XX:+UseG1GC / -XX:+UseZGC)
2025年-12月-9日
4 阅读
0 评论
Java性能调优
2025-12-5
如何诊断和解决Java应用中的内存泄漏问题?
诊断和解决Java内存泄漏的核心步骤:监控指标:通过JVM参数(-Xmx, -Xms)和工具(如JConsole)观察堆内存持续增长且Full GC后不释放堆转储分析:使用jmap -dump或jcmd GC.heap_dump生成堆转储文件,通过MAT或VisualVM分析对象引用链定位泄漏源:查找GC Roots到泄漏对象的路径,常见于:静态集合类长期持有对象未关闭的资源(连接池、流)监听器未注销ThreadLocal未清理修复策略:移除无效引用、使用弱引用、确保资源关闭、合理使用ThreadLocal
2025年-12月-5日
5 阅读
0 评论
Java性能调优