java虚拟机
文章平均质量分 78
shang_xs
java届的小学生
展开
-
JVM内存溢出的三种情况
JVM OOM常见情况JVM Server Params转载 2022-04-11 11:52:57 · 1515 阅读 · 0 评论 -
字节码增强技术探索
字节码增强技术探索2019年09月05日 作者: 赵泽恩 文章链接 17853字 36分钟阅读1.字节码1.1 什么是字节码?Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是用javac命令编译转载 2020-12-23 14:11:31 · 260 阅读 · 0 评论 -
JVM内存溢出-数据库连接对象大量累积
JVM内存溢出-数据库连接对象大量累积题记上周三晚上截单之前,部分订单交易处理缓慢,少量订单支付由于超时连接,直接导致支付失败。信息来源有二:其一是jvm内存监控,间断性预警内存使用率过高,而后降下来;重复循环。其二是运营团队反应的客户下单异常情况。由此,打开电脑,开始排查。分析由于项目对接新的渠道,近一周内没有新需求上线,基本排除新bug引起的交易异常和内存预警;由于内存占用过高,周而复始,说明GC后内存确实会降下来;交易延时,部分交易不可用可能是由于GC时间过长直接导致的;排查步骤1原创 2020-07-05 21:31:35 · 1516 阅读 · 0 评论 -
深入理解Java虚拟机(一)知识储备
深入理解Java虚拟机(一)知识储备JVM内存划分:① 方法区 (线程共享) 常量 静态变量 JIT(即时编译器)编译后代码也在方法区存放② 堆内存(线程共享) 垃圾回收的主要场地③ 程序计数器 当前线程执行的字节码的位置指示器④ Java虚拟机栈(栈内存) :保存局部变量,基本数据类型以及堆内存中对象的引用变量⑤ 本地方法栈 (C栈):为JVM提供使用native方...原创 2019-03-04 16:19:08 · 613 阅读 · 0 评论 -
深入理解Java虚拟机(二)面向GC的Java编程
面向GC的Java编程基本观点:过早优化是万恶之源。GC分代的基本假设绝大部分对象的生命周期都非常短暂,存活时间短。而这些短命的对象,恰恰是GC算法需要首先关注的。所以在大部分的GC中,YoungGC(也称作 MinorGC)占了绝大部分,对于负载不高的应用,可能跑了数个月都不会发生FullGC。基于这个前提,在编码过程中,我们应该尽可能地缩短对象的生命周期。在过去,分配对象是一个比较 ...转载 2019-03-04 16:20:47 · 283 阅读 · 0 评论 -
深入理解Java虚拟机(三)GC优化实战
深入理解Java虚拟机(一)GC优化当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容:...转载 2019-03-04 16:21:45 · 431 阅读 · 0 评论