java1.8 的 client runtime compiler和server runtime compiler

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益:

  1. 了解大厂经验
  2. 拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我!

一、前言

之前在排查 进一步分析并彻底解决 Flink container exit 143 问题 感觉 JVM 相关的东西都忘完了,整体排查起来有些吃力,所以后续会有一系列关于 JVM 的一些东西。一方面巩固一下,另外一方面方便后续排查问题

二、java runtime compiler

提高runtime compiler 首先想到的肯定是 JIT,JIT有不同的模式:client runtime compiler和server runtime compiler

2.1 定义

txt 复制代码
1.  Client Runtime Compiler模式:这种模式下,编译器会更关注程序的快速启动时间和较低的内存消耗。它通常会使用更简单的优化策略和较短的编译时间,因此适用于需要频繁启动和停止的应用程序,比如桌面应用程序或者客户端应用程序。开发的比较少,基本不关心

2.  Server Runtime Compiler模式:相比之下,server runtime compiler模式更关注程序的长期运行性能和更高的运行速度。它会使用更复杂的优化策略和更长的编译时间,以获取更高的执行效率。因此,适用于服务器端应用程序或长时间运行的应用程序。

2.2 使用

在Java中,可以通过设置系统属性来指定JIT编译器的模式。可以使用"-client"参数来启用client runtime compiler模式,使用"-server"参数来启用server runtime compiler模式。

例如,在命令行中启动一个Java应用程序时,可以使用以下命令来指定JIT编译器的模式:

java 复制代码
java -client YourApp

或者

java 复制代码
java -server YourApp

选择适合的JIT编译器模式可以根据应用程序的性能需求和运行环境来决定,以获得更好的性能和运行效果。

三、java 垃圾回收、堆以及 runtime compiler 的默认值

在超过 2个处理器 和 2GB 内存的服务器(服务器级计算机的定义适用于除运行 Windows 操作系统版本的 32 位平台之外的所有平台),默认值为:

txt 复制代码
1. Throughput garbage collector
2. Initial heap size of 1/64 of physical memory up to 1 GB
3. Maximum heap size of 1/4 of physical memory up to 1 GB(32位)
4. Server runtime compiler

在 32 位 JVM 上,如果有 4 GB 或更多物理内存,则默认最大堆大小可达 1 GB。在 64 位 JVM 上,如果有 128 GB 或更多物理内存,则默认最大堆大小可达 32 GB

四、参考文档

Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide

五、总结

本文主要介绍了Java Runtime Compiler的两种模式,以及如何在Java中使用它们。此外,还介绍了Java垃圾回收、堆以及runtime compiler的默认值。选择适合的JIT编译器模式可以根据应用程序的性能需求和运行环境来决定,以获得更好的性能和运行效果。

相关推荐
羊小猪~~几秒前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
武子康4 分钟前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康6 分钟前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
极客代码7 分钟前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng11337 分钟前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
Seeklike8 分钟前
11.22 深度学习-pytorch自动微分
人工智能·pytorch·深度学习
庞传奇9 分钟前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow
苏-言13 分钟前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
华清远见IT开放实验室16 分钟前
【每天学点AI】实战图像增强技术在人工智能图像处理中的应用
图像处理·人工智能·python·opencv·计算机视觉
界面开发小八哥20 分钟前
更高效的Java 23开发,IntelliJ IDEA助力全面升级
java·开发语言·ide·intellij-idea·开发工具