当前位置:网站首页>jvm是什么?jvm调优有哪些目的?
jvm是什么?jvm调优有哪些目的?
2022-07-06 22:03:00 【Blue92120】
jvm的组成
jvm是一种能够运行java字节码的虚拟机。由类装载子系统、运行时数据区(内存模型) 和字节码执行引擎三部分组成,跨平台 ,从软件层面屏蔽不同操作系统在底层硬件与指令上的区别,实现一处编写多处运行运行之前通过javac命令将转成字节码文件,当字节码文件运行时 JVM就开始工作了。
1.类装载子系统
2.运行时数据区:
堆 : new出来的对象都放在堆里,堆分为老年代和年轻代,老年代占整个堆的2/3,年轻代占1/3.年轻代又分为三块:伊甸园区,survivor区(s0和s1),比例8:1:1 .当伊甸园区里面的对象装满了,字节码引擎会执行一个垃圾回收线程(minor(蛮呢儿) gc)将非垃圾对象复制到survivor区,然后删除垃圾对象
栈 :只要一个线程在运行,Java虚拟机就会给这个线程分配一点内存空间, 这块空间就叫做线程栈(用来放方法内部自己的局部变量) 一个方法对应一块栈帧内存区域
程序计数器 :每一个程序运行的时候都会分配一个程序计数器,记录马上要执行代码的内存地址,作用就是当前线程被抢走执行权,恢复执行的时候就从记录的内存地址继续运行
方法区 : 存放常量,静态变量,类信息(字节码文件被加载后就放到方法区)
本地方法栈 :执行本地方法的时候分配的内存空间由本地方法栈提供,底层用C C++语言写的方法就是本地方法
3.字节码执行引擎
jvm调优
调优目的: 在回收垃圾的时候会停止用户进程(STW) stop the word ,专心做垃圾回收,减少GC(minor full)
为什么要有SWT: 当程序运行的过程中,产生了垃圾,full GC就开始找垃圾,从局部变量开始找完了所有的对象,都标记成非垃圾对象,然后在找其他变量.如果有一个线程,GC线程还没结束,它先结束了,那它里面的栈内存空间会被释放,释放掉就意味着局部变量表没有了,局部变量也被销毁了,那刚刚GC找垃圾的时候明明把这些对象标记未非垃圾对象,现在又变成垃圾了,这不合适 . 所以在回收垃圾的时候,让用户线程先停掉,不要影响对象的状态 , 标记好了再把垃圾清理,可能性能还要高一点
能否对JVM调优,让其几乎不发生Full GC :
调优工具: Arthas(阿尔萨斯) 它是阿里巴巴开源的java诊断工具,支持JDK6+,采用命令行交互模式.使用简便,监控进程。
边栏推荐
- How to write a resume that shines in front of another interviewer [easy to understand]
- Optimization of channel status offline of other server devices caused by easycvr cluster restart
- 2022 middle school Youth Cup mathematical modeling question B fertility policy research ideas under the background of open three children
- SSM+jsp实现仓库管理系统,界面那叫一个优雅
- SSM+JSP实现企业管理系统(OA管理系统源码+数据库+文档+PPT)
- 接口自动化测试实践指导(中):接口测试场景有哪些
- NanopiNEO使用开发过程记录
- Food Chem|深度学习根据成分声明准确预测食品类别和营养成分
- How to conduct website testing of software testing? Test strategy let's go!
- 科兴与香港大学临床试验中心研究团队和香港港怡医院合作,在中国香港启动奥密克戎特异性灭活疫苗加强剂临床试验
猜你喜欢
[OA] excel document generator: openpyxl module
【刷题记录】2. 两数相加
视频融合云平台EasyCVR视频广场左侧栏列表样式优化
深耕开发者生态,加速AI产业创新发展 英特尔携众多合作伙伴共聚
[team learning] [34 issues] scratch (Level 2)
硬件开发笔记(十): 硬件开发基本流程,制作一个USB转RS232的模块(九):创建CH340G/MAX232封装库sop-16并关联原理图元器件
The easycvr platform is connected to the RTMP protocol, and the interface call prompts how to solve the error of obtaining video recording?
MySQL forgot how to change the password
5年自动化测试,终于进字节跳动了,年薪30w其实也并非触不可及
This "advanced" technology design 15 years ago makes CPU shine in AI reasoning
随机推荐
kivy教程之设置窗体大小和背景(教程含源码)
Redis source code learning (30), dictionary learning, dict.h
[team learning] [34 sessions] Alibaba cloud Tianchi online programming training camp
视频融合云平台EasyCVR视频广场左侧栏列表样式优化
Win11玩绝地求生(PUBG)崩溃怎么办?Win11玩绝地求生崩溃解决方法
[system management] clear the icon cache of deleted programs in the taskbar
In cooperation with the research team of the clinical trial center of the University of Hong Kong and Hong Kong Gangyi hospital, Kexing launched the clinical trial of Omicron specific inactivated vacc
科兴与香港大学临床试验中心研究团队和香港港怡医院合作,在中国香港启动奥密克戎特异性灭活疫苗加强剂临床试验
Redis source code learning (31), dictionary learning, dict.c (1)
Dab-detr: dynamic anchor boxes are better queries for Detr translation
Break the memory wall with CPU scheme? Learn from PayPal to expand the capacity of aoteng, and the volume of missed fraud transactions can be reduced to 1/30
ESG Global Leaders Summit | Intel Wang Rui: coping with global climate challenges with the power of science and technology
What if the win11 screenshot key cannot be used? Solution to the failure of win11 screenshot key
AI 落地新题型 RPA + AI =?
[on automation experience] the growth path of automated testing
用CPU方案打破内存墙?学PayPal堆傲腾扩容量,漏查欺诈交易量可降至1/30
Kotlin compose text supports two colors
The easycvr platform is connected to the RTMP protocol, and the interface call prompts how to solve the error of obtaining video recording?
Win11截图键无法使用怎么办?Win11截图键无法使用的解决方法
高薪程序员&面试题精讲系列120之Redis集群原理你熟悉吗?如何保证Redis的高可用(上)?