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

作者:我犟不过你 时间:2023-09-04 18:31:48 

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

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版本,不需要手动指定编译器,仰仗于平台所支持的编译器即可。

来源:https://juejin.cn/post/7109633835805081636

标签:Java,性能优化,编译器
0
投稿

猜你喜欢

  • java为什么会出现精度丢失这种现象你知道吗

    2023-07-04 05:24:38
  • java实现查找替换功能

    2021-12-15 00:46:50
  • SpringBoot动态修改yml配置文件的方法详解

    2023-06-20 16:14:34
  • javascript最新2020经典面试题

    2023-05-15 09:04:43
  • android仿音悦台页面交互效果实例代码

    2023-03-27 12:55:54
  • java实现扫雷游戏入门程序

    2023-04-24 16:20:40
  • Java I/O中I/O流的典型使用方式详解

    2023-07-08 21:07:51
  • C#简单读取、改变文件的创建、修改及访问时间的方法

    2022-11-12 03:56:50
  • mybatis 插件: 打印 sql 及其执行时间实现方法

    2023-05-29 16:49:19
  • C语言中的各种文件读写方法小结

    2023-06-13 02:44:40
  • android多线程断点下载-带进度条和百分比进度显示效果

    2022-03-20 14:30:43
  • Java判断对象是否为空(包括null ,"")的方法

    2022-11-26 13:50:25
  • Flutter 如何正确显示SnackBar

    2023-06-23 13:00:40
  • C# XmlDocument操作XML案例详解

    2021-11-23 04:00:01
  • Android手机卫士之设置密码对话框

    2021-08-03 07:24:27
  • 关于Spring源码是如何解决Bean的循环依赖

    2023-09-16 14:15:17
  • java实现在性能测试中进行业务验证实例

    2022-10-15 09:50:11
  • C语言数据结构之二叉树详解

    2021-08-18 20:56:41
  • SpringBoot Security安装配置及Thymeleaf整合

    2023-11-27 16:18:41
  • Oracle + Mybatis实现批量插入、更新和删除示例代码

    2022-01-18 16:05:58
  • asp之家 软件编程 m.aspxhome.com