java性能优化之编译器版本与平台对应关系

 更新时间:2022年06月17日 15:08:58   作者:我犟不过你  
这篇文章主要介绍了java性能优化--编译器版本与平台对应关系,本章节更加具体化的学习编译器还有哪些可以优化的方便,让你的应用展现出更好的性能,需要的朋友可以参考下

本章节更加具体化的学习编译器还有哪些可以优化的方便,让你的应用展现出更好的性能。

JIT编译器版本

JIT编译器有不同的版本,而最终你使用哪种,取决于你所使用的系统平台。前面的文章我们说到编译器有-client-server,具体划分应该是如下所示:

  • -client 32位client编译器
  • -server 32位server编译器
  • -d64 64位server编译器

如果你的系统是32位,那么你只能使用32位JVM,如果你是64位系统,那么可以选择32位或64位系统。

不同jvm的编译器版本如下:

jvm版本-client-server-d64
linux 32位32位client32位server出错
linux 64位64位server64位server64位server
windows 32位32位client32位server出错
windows 64位64位server64位server64位server
macOS64位server64位server64位server

我们使用的java8,默认使用的都是server编译器,同时是开启分层编译的。

默认情况JVM如何选择编译器?

假如我们没有指定编译器的参数,那么JVM是如何选择使用何种编译器的呢?

实际上jvm是考虑机器的CPU数目:

  • 在64位系统,无论机器多少CPU,都会使用server编译器

  • 在32系统

    • 如果只有一个cpu,那么使用client编译器
    • 多个cpu,使用server编译器。

如何判断当前环境jvm使用的编译器?

我们最经常使用的查看java版本命令,就可以在最后一行展示当前所使用的编译器类型:

[root@public-server9 esmp]# java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)
复制代码

如上所示,Linux环境下使用的是64位server编译器。

小节

不同的平台环境对应着不同的java版本,不同的java版本又对应着不同的编译器版本。我们在使用的时候,只需要选择对应于平台的java版本,不需要手动指定编译器,仰仗于平台所支持的编译器即可。

到此这篇关于java性能优化之编译器版本与平台对应关系的文章就介绍到这了,更多相关Java 性能优化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java面试突击为什么要用HTTPS及它的优点

    Java面试突击为什么要用HTTPS及它的优点

    这篇文章主要介绍了Java面试突击为什么要用HTTPS及它的优点,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • SpringAop日志找不到方法的处理

    SpringAop日志找不到方法的处理

    这篇文章主要介绍了SpringAop日志找不到方法的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • spring boot 日志/页面处理、实体类构建、后台管理功能的实现

    spring boot 日志/页面处理、实体类构建、后台管理功能的实现

    这篇文章主要介绍了spring boot 日志/页面处理、实体类构建、后台管理功能的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 关于JWT与cookie和token的区别说明

    关于JWT与cookie和token的区别说明

    这篇文章主要介绍了JWT与cookie和token的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • java设计模式Ctrl C和Ctrl V的原型模式详解

    java设计模式Ctrl C和Ctrl V的原型模式详解

    这篇文章主要为大家介绍了java设计模式Ctrl C和Ctrl V的原型模式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Java之进程和线程的区别

    Java之进程和线程的区别

    这篇文章主要介绍了进程与线程的区别,线程具有许多传统进程所具有的特征,而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务,有感兴趣的小伙伴可以参考阅读本文
    2023-03-03
  • idea2022创建javaweb项目步骤(超详细)

    idea2022创建javaweb项目步骤(超详细)

    本文主要介绍了idea2022创建javaweb项目步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java替换(新增)JSON串里面的某个节点操作

    Java替换(新增)JSON串里面的某个节点操作

    这篇文章主要介绍了Java替换(新增)JSON串里面的某个节点操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 浅谈序列化之protobuf与avro对比(Java)

    浅谈序列化之protobuf与avro对比(Java)

    下面小编就为大家带来一篇浅谈序列化之protobuf与avro对比(Java)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Java实现高并发秒杀的几种方式

    Java实现高并发秒杀的几种方式

    高并发场景在现场的日常工作中很常见,本文主要介绍了Java实现高并发秒杀的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05

最新评论