JVM
文章平均质量分 87
zheng45
这个作者很懒,什么都没留下…
展开
-
JVM--线上系统jvm参数配置实战
上一篇文章最后留了一道思考题,线上系统怎么进行JVM参数配置及调优?其实对于一般的系统,并发量不大,很多开发人员很少关注JVM参数配置及调优,但是为了进阶更高一层,其实可以自己模拟一个高并发的请求,然后观察JVM内存使用情况,针对高并发下垃圾回收情况进行JVM调优。笔者开发过一个订单系统,要求TPS峰值到达2w笔/秒,所以,本章节就针对TPS 2w笔/秒高并发情况下JVM如何配置进行讲解。1. 业务流程介绍主要流程如下:用户在界面进行下单后,订单系统就会插入一条订单记录。调用商品系统进行库.原创 2021-05-12 21:56:06 · 938 阅读 · 0 评论 -
JVM--常用参数及设置
1.参数分类java启动参数共分为三类标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;2.核心参数参数名称内存区域说明-Xms堆内存Java堆内存的大小-Xmx堆内存Java堆内存的最大大小-Xmn堆内存Java堆内存中的新生原创 2021-03-04 20:29:10 · 2043 阅读 · 2 评论 -
JVM--内存分代模型
年轻代老年代永久代1.年轻代年轻代,顾名思义,就是创建和使用完之后立马就把要回收的对象放在里面。一般对象第一次创建都会进入年轻代。如以下代码public class ExamApp { public static void main(String[] args) throws Exception{ while(true){ studentStudy(); Thread.sleep(1); } }.原创 2021-03-04 16:22:12 · 590 阅读 · 1 评论 -
JVM--内存区域
1. 方法区这个方法区是在JDK 1.8以前的版本里,代表JVM中的一块区域。用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,运行时常量池(Runtime Constant Pool)也是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放。在JDK 1.8以后,这块区域的名字改叫 Metas.原创 2021-03-01 11:22:23 · 111 阅读 · 0 评论 -
JVM--类加载器
启动类加载器扩展类加载器应用程序类加载器自定义类加载器双亲委派机制1. 启动类加载器Bootstrap ClassLoader,主要是负责加载Java安装目录下的核心类。Java安装目录下,就有一个“lib”目录,里面包含Java最核心的一些类库,一旦JVM启动,那么首先就会依托启动类加载器,去加载Java安装目录下的“lib”中的核心类库。2.扩展类加载器Extension ClassLoader,主要是负责加载Java安装目录下的扩展类。Java安装目录下,就有一个“lib\ext”.原创 2021-03-01 10:57:46 · 83 阅读 · 0 评论 -
JVM--类加载机制
加载验证准备解析初始化使用回收1.加载JVM运行原理:jvm什么时候会加载一个类,也就是说,啥时候会从“.class”字节码文件中加载这个类到JVM内存里来,答案就是代码中用到这个类的时候。如以下代码public class ExamApp { public static void main(String[] args){ Student student = new Student(); }}ExamApp作为启动类,在启动时就会被jvm加.原创 2021-03-01 10:55:04 · 358 阅读 · 4 评论