专栏首页FREE SOLOJVM优化Java代码时都做了什么?

JVM优化Java代码时都做了什么?

JVM优化Java代码时都做了什么?

JVM在对代码执行的优化可分为运行时化和即时编译器优化。运行时优化主要是解析执行和动态编译通用的一些机制,比如说锁机制(如偏向锁)、内存分配机制(如TLAB)。除此之外,还有一些专门优化器执行效率的,比如说模板解析器,内联缓存。 JVM的即时编译器优化是指将热点代码以方法为单位转换成机器码,直接运行在底层硬件之上。它采用了多种优化方式,包括静态编译器可以使用的如方法内联、逃逸分析,也包括基于程序运行profle的投机性优化,这个怎么理解了?比如我有一条instanceof指令,在编译之前的运行过程中,测试对像的类一直是同一个,那么即时编译器可以假设编译之后的执行过程中还会是这一个类,并且根据这个类直接返回instanceof的结果。如果出现了其他类,那么就抛弃这段编译后的机器码,并且切换回解析执行。

JVM性能调优有很多设置,这个参考JVM参数即可.

主要调优的目的:

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JVM优化Java代码时都做了什么?

    JVM 在对代码执行的优化可分为运行时(runtime)优化和即时编译器(JIT)优化。

    葆宁
  • 谈谈对Web Service的理解

    WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用。

    葆宁
  • 元空间和永久代的区别

    在Java虚拟机(JVM)内部,class文件中包括类的版本、字段、方法、接口等描述信息,还有运行时常量池,用于存放编译器生成的各种字面量和符号引用。

    葆宁
  • JVM优化Java代码时都做了什么?

    JVM 在对代码执行的优化可分为运行时(runtime)优化和即时编译器(JIT)优化。运行时优化主要是解释执行和动态编译通用的一些机制,比如说锁机制(如偏斜锁...

    本人秃顶程序员
  • JVM学习思路0529

    从计算机组成原理和计算机操作系统两个角度去学习JVM;JVM组成包括:架构(操作数栈、栈、PC、方法调用栈帧)、指令集、指令执行过程。JVM不是直接接受二进制代...

    阿杜
  • 单点登录,不要老盯着cas-server了,你还可以选择keycloak

    这里的cas不是Java并发包中的CAS,做过单点登录(SSO)的同学应该对它不会陌生。这个玩意太古老了,而且生态非常庞大,以至于我现在想起它都心有余悸。很长一...

    xjjdog
  • 云安全——云计算的预防措施和风险

    云计算正在日益集成,并且随着它在大多数公司中的实施,对于其安全性需求也在不断增加。云安全是指基于控制的技术集合,旨在维护云平台的安全性并保护信息、数据安全性以及...

    静一
  • 新国家安全法通过,首次明确“网络空间主权”概念

    大数据文摘
  • 网络安全防护行业最酷工作前20排名出炉

    未来几年,信息安全是IT市场为数不多的能够保持20%以上高增长率,35岁不会裁员的潜力股,对各个领域的资本和人才极具吸引力。然而,信息安全人才市场的人才短缺仍在...

    技术分享达人
  • 什么是BIO、NIO和AIO?

    周末午后,在家里面进行电话面试,我问了面试者几个关于IO的问题,其中包括什么是BIO、NIO和AIO?三者有什么区别?具体如何使用等问题,但是面试者回答的并不是...

    乔戈里

扫码关注云+社区

领取腾讯云代金券