JVM调优,何时调优,怎么调优,面试的时候调优
一般Java面试的时候,面试官都喜欢问一个面试题,就是JVM调优的面试题,相信超过99%的小伙伴都没有过JVM调优的经历。说实话,我以前也没有相关的调优经验,也非常喜欢百度,这个问题到底想问什么,应该怎么回答,结果看到了一个非常有意思的回答。
答案:
1、我一般面试的时候调优(顽皮)
2、我他妈直接ZGC,调个蛇皮
说实话,Java到了需要做jvm调优的时候,那说明这个系统是一个面向高并发系统,并且用户量绝对不在少数,并且会追求一个低延迟的一个场景。例如淘宝、京东、各类秒杀活动,那么这个时候,存在jvm调优的情况(有几个在阿里上班的)。
那么何时调优呢,该怎么调优呢,我认为这个没有一个标准答案,要不然我之前也不会经常百度了。
我们先了解一下JVM,这个玩意基本上是开箱即用,不需要你调优,他也能跑的很好,你确定你比设计这个JVM的人更加专业吗,还调优,调个蛇皮吧,当你需要调优的时候,基本上是你的代码写出问题啦,导致线上频繁ygc,fullgc。这个就没有办法了,ygc跟架构存在一定关系,fullgc就自个区反省吧。
我们在进阶了解一下,怎么调优,能动的几个参数,最小内存和最大内存,这个跟JVM是息息相关的,如果小了,就会导致频繁ygc,并且容易导致对象晋升到老年代,并且触发fullgc,这个fullgc的危害是非常大的,会导致整个业务暂停。那么这个时候,就有同学把这个内存直接调大,恭喜你,踩吭了,大内存确实可以避免频繁ygc,但是当你触发fullgc的时候,哼哼,直接炸裂,业务停顿时间贼长,你们经理估计要宰了你。
除了能动内存之外,我们还有一个选择,那就是垃圾回收器,各版本的JDK使用的垃圾回收器各不一样,使用的默认的垃圾回收器也不一样,然后你们可以了解一下每一种垃圾回收器的特点
Java虚拟机(JVM)提供了多种垃圾回收器(Garbage Collectors),用于自动管理内存,回收不再使用的对象。以下是一些常见的垃圾回收器及其特点:
-
Serial GC(串行垃圾回收器):
- 单线程回收器,使用单个线程进行垃圾回收。
- 适用于单核CPU和小内存应用场景。
- 在进行垃圾回收时,会暂停应用程序的其他线程,导致应用程序的停顿时间较长。
- 适用于对延迟要求不高的场景,如桌面应用程序。
-
Parallel GC(并行垃圾回收器):
- 多线程回收器,使用多个线程进行垃圾回收。
- 适用于多核CPU和大内存应用场景。
- 在进行垃圾回收时,会暂停应用程序的其他线程,但由于使用了多线程,停顿时间相对较短。
- 适用于对延迟要求不高的场景,如服务器应用程序。
-
CMS(Concurrent Mark Sweep)垃圾回收器:
- 并发回收器,尽量减少应用程序的停顿时间。
- 使用多线程进行垃圾回收,与应用程序线程并发执行。
- 在进行垃圾回收时,会标记需要回收的对象,然后在适当的时机进行清理。
- 适用于对延迟要求较高的场景,如低延迟交易系统。
- 需要注意的是,CMS回收器在清理过程中可能会产生大量碎片,可能导致内存碎片化问题。
-
G1(Garbage-First)垃圾回收器:
- 并行回收器,尽量减少应用程序的停顿时间。
- 将堆内存划分为多个独立的区域(Region),并根据区域的使用情况进行垃圾回收。
- 在进行垃圾回收时,会优先回收垃圾最多的区域,以减少停顿时间。
- 适用于大内存、多核CPU的应用场景,如大型数据处理系统。
- 可以通过调整参数来控制停顿时间和吞吐量。
这下,你们知道该怎么回答这个面试题了吗
相关文章:
JVM调优,何时调优,怎么调优,面试的时候调优
一般Java面试的时候,面试官都喜欢问一个面试题,就是JVM调优的面试题,相信超过99%的小伙伴都没有过JVM调优的经历。说实话,我以前也没有相关的调优经验,也非常喜欢百度,这个问题到底想问什么,应该…...
朗之万动力学(Langevin dynamics)
朗之万动力学(Langevin dynamics) 是一种模拟经典粒子运动的方法,常用于物理、化学和材料科学等领域。它是由法国物理学家保罗朗之万(Paul Langevin)于1908年提出的,用于描述布朗运动,即微小粒…...

双指针技巧,链表
双指针链表 虚拟头节点双指针,都要用虚拟1头节点 合并两个有序链表 设置双指针,都指向虚拟头节点 ListNode list1 代表的是头节点 class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode dummynew ListNode(-1…...

鸿蒙 DevEcoStudio:发布进度条通知
使用notificationManager及wantAgent实现功能import notificationManager from ohos.notificationManager import wantAgent from ohos.app.ability.wantAgent Entry Component struct Index {State message: string 发布进度条通知progressValue: number0async publicDownloa…...

web前端之vue动态访问静态资源、静态资源的动态访问、打包、public、import、URL、Vite
MENU 静态资源与打包规则动态访问静态资源直接导入将静态资存放在public目录中动态导入URL构造函数结束语实践与坑附文 静态资源与打包规则 介绍 Vite脚手架在打包代码的时候,会把源代码里对于静态资源的访问路径转换为打包后静态资源文件的路径。主要的区别是文件指…...

Raven2掠夺者2渡鸦2角色创建、游戏预下载、账号怎么注册教程
《渡鸦2》(Raven 2)是由韩国开发的一款大型多人在线角色扮演游戏(MMORPG)类型的手游,作为前作《Raven》的续集,继承并发展了其黑暗奇幻世界观,同时在游戏设计和内容上进行了大量创新。游戏预计于…...

Window VScode配置Conda教程(成功版)
VScode配置Conda 参考博文:https://blog.csdn.net/qq_51831335/article/details/126757014Anaconda安装(注意勾选自动配置环境变量!) 官网:https://www.anaconda.com/download/success VScode配置 python插件安装安装 …...
探索旅行的优惠之选,千益畅行旅游卡让旅程更省心省力!
在旅行的道路上,一张旅游卡往往能为您带来意想不到的便利与优惠。那么,对于千益畅行旅游卡,您是否好奇如何轻松拥有它呢? 首先,千益畅行旅游卡作为旅行者的贴心伴侣,为您提供了多样化的获取渠道。您可以通…...

JVM学习-彻底搞懂Java自增++
从字节码角度分析i和i的区别 public void method6() {int i 10;i; //在局部变量表上直接加1}public void method7() {int i 10;i; //字节码同i}public void method8() {int i 10;int a i; //通过下图可以看出先将局部变量表中的值push到操作数栈,然…...

【全开源】民宿酒店预订管理系统(ThinkPHP+uniapp+uView)
民宿酒店预订管理系统 特色功能: 客户管理:该功能可以帮助民宿管理者更加有效地管理客户信息,包括客户的姓名、电话、地址、身份证号码等,并可以在客户的订单中了解客户的消费情况,从而更好地满足客户的需求ÿ…...

9.3 Go语言入门(变量声明和函数调用)
Go语言入门(变量声明和函数调用) 目录二、变量声明和函数调用1. 变量声明1.1 使用 var 关键字声明1.2 简短声明1.3 零值1.4 常量 2. 函数调用2.1 函数定义2.2 多个返回值2.3 命名返回值2.4 可变参数2.5 匿名函数和闭包 目录 Go 语言(Golang&a…...

CVE-2020-7982 OpenWrt 远程命令执行漏洞学习(更新中)
OpenWrt是一款应用于嵌入式设备如路由器等的Linux操作系统。类似于kali等linux系统中的apt-get等,该系统中下载应用使用的是opgk工具,其通过非加密的HTTP连接来下载应用。但是其下载的应用使用了SHA256sum哈希值来进行检验,所以将下载到的数据…...

代码随想录——左叶子之和(Leetcode404)
题目链接 BFS 队列 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right)…...

解禁谷歌等浏览器禁止网站使用麦克等媒体设备
1、浏览器地址栏输入chrome://flags/ 微软的chromium内核的edge浏览器,既可以输入:chrome://flags/ ,也可以输入edge://flags/ 2、打开后,界面如下 3、输入搜索,unsafe,并启用、输入需要启用的网址...

如何彻底卸载sql sever2022
目录 背景过程1、关闭sql sever服务2、打开控制面板,卸载SQL Sever3、手动删除 SQL Server 遗留文件4、清空注册表5、重启计算机以确保所有更改生效。 总结 背景 重装了电脑,安装sqlServer,一直报错,不成功,所以每次安…...

「51媒体」如何与媒体建立良好关系?
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 与媒体建立良好关系对于企业或个人来说都是一项重要的公关活动。 了解媒体:研究媒体和记者的兴趣,提供相关且有价值的信息。 建立联系:通过专业的方式…...
Selenium 库的爬虫实现
Selenium 是什么? Selenium 是一个用于自动化 Web 应用程序测试的工具。它提供了一个用于测试网站的框架,可以模拟用户在浏览器中的操作,如点击链接、填写表单、提交数据等。Selenium 可以在多种浏览器和操作系统上运行,并且支持…...
【文末附gpt升级方案】数据虚拟化技术的优势
数据虚拟化技术的优势主要体现在以下几个方面: 提高资源利用率和降低成本: 数据虚拟化可以显著减少物理硬件的需求,从而降低硬件成本。通过虚拟化,企业可以利用数据中心提供的规模经济优势,使用更少的服务器来完成相同…...

C++ 常量和变量
1 常量 具体把数据写出来 2,3,4;1.2 1.3;“Hello world!”,“C” cout<<2015 常量:不能改变的量。 字面常量(字面量、直接常量):直接写出的数据。 符号常量:用符号表示数据,但它一旦确定…...

【cocos creator 】生成六边形地图
想要生成一个六边形组成的地图 完整代码示例 以下是完整的代码示例,包含了注释来解释每一步: cc.Class({extends: cc.Component,properties: {hexPrefab: {default: null,type: cc.Prefab},mapWidth: 10, // 网格的宽度(六边形的数量&am…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...