JVM性能调优
java 如何跨平台,如何一次编译到处执行
是由于java在不同的jvm上编译,jvm在软件层面屏蔽不同操作系统在底层硬件与指令上的区别。
jvm 包括

new 的对象都是放在堆中
栈,给线程单独使用(线程私有),存储一个一个栈帧(存储局部变量)
给方法分配一个栈帧,放方法自己的局部变量 一个方法对应一个栈帧内存,方法结束,栈帧销毁。
栈帧由 局部变量表(局部变量(对象的话存的是对象在堆中的内存地址),还有其索引)、操作数栈(操作的 加载到操作数栈)、动态链接(把一些符号引用转换为直接引用 类名方法名都是符号引用 通过符号引用找到直接引用的位置(方法的话就是方法区域的内存的地址))、方法出口(方法返回)组成。
程序计数器(线程私有),马上要执行的一行代码的行号或者位置(方法区的内存地址)(存在原因 多线程安全,被另一个线程抢占了 重新回到本线程时怎么知道我执行到那里了)
类通过类加载子系统 主要将类加载到方法区,字节码执行引擎主要执行方法区里面的代码,程序计数器的值是字节码执行引擎动态修改的。
方法区 1.8之前 持久代 永久代 1.8后元空间 存放常量+静态变量+类信息
本地方法栈:存储 native 修饰的本地方法 (非java 语言实现)

字节码执行引擎 垃圾收集 Eden区满了 触发minor gc 有引用的复制到s区中的一个 其他杀掉
分代年龄大于15进入老年区 老年区满了 出发full gc 如果老年代满了垃圾无法回收 造成OOM(OutOfMemoryError)
调优
cmd jvisualvm(jdk 中包含的 全局配置) 监控所有线程的jvm
使用arthas
查死锁
thread -b
查线程
thread 线程好
面板
dashboard
反编译
jad 加类全名
通过arthas 修改内存变量值
ognl 命令
目的
减少STW(STOP THE WORD 停止掉整个事件),在垃圾收集时会触发STW 将所有用户线程全部暂停。
为什么设置STW STW 并不好
如果不设置STW 则线程正在运行过程中,触发GC时,假设在GC过程中,线程执行结束了,所以该线程变为垃圾对象了,所以造成空间浪费,回收麻烦。
优化
调整各个区域的配比 尽可能在年轻代干掉垃圾 尽量不发生full gc 评估每秒的空间
什么时候进入老年代
年龄
大对象
超过幸存区50% 最大年龄对象放入老年代
eden 区如果比较大 则minio gc 消耗时间比较长 导致请求慢重复发送(这个要调优 需要垃圾收集器调优)
选择合适的垃圾回收器
相关文章:
JVM性能调优
java 如何跨平台,如何一次编译到处执行 是由于java在不同的jvm上编译,jvm在软件层面屏蔽不同操作系统在底层硬件与指令上的区别。 jvm 包括 new 的对象都是放在堆中 栈,给线程单独使用(线程私有),存储一个…...
【全链路追踪】XXL-JOB添加TraceID
文章目录 一、背景调用路径部署环境问题 二、方案三、Demo示例1、MDC2、RequestInterceptor3、HandlerInterceptor4、logback.xml 四、后续改进思路 一、背景 首先这个项目属于小型项目,由于人手以及时间限制,并未引入Skywalking等中间件来做调用链路追…...
[Unity]Lua本地时间、倒计时和正计时。
惯例,直接上代码: --正计时开始时的时间戳 self.begin_time os.time() --倒计时时长,01:30:00 self.countdown_time 5400 --是否开始计时 self.is_update_local_time true--Unity Update function time_transition:update_local_timer()i…...
探究HTTP API接口测试:工具、方法与自动化
本文将深入探讨HTTP API接口测试的重要性,并介绍了相关工具、方法以及自动化测试的实施,同时比较了HTTP和API接口测试的区别。从不同角度解析这一关键测试领域,帮助读者更好地理解和应用于实际项目中。 在如今数字化的世界中,软件…...
CSS中如何实现文字溢出省略号(text-overflow: ellipsis)效果?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS中如何实现文字溢出省略号(text-overflow: ellipsis)效果?⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 …...
CSDN编程题-每日一练(2023-08-21)
CSDN编程题-每日一练(2023-08-21) 一、题目名称:贝博士的论文审阅统计二、题目名称:生命进化书三、题目名称:寻找宝藏山一、题目名称:贝博士的论文审阅统计 时间限制:1000ms内存限制:256M 题目描述: 贝博士经常收到申请他审阅论文的信函,每封信函的信封上面只有两个申…...
面试题-React(四):React中的事件绑定如何实现?有几种方式?
一、React事件绑定机制 在React中,事件绑定是通过JSX语法来实现的。你可以将事件处理函数直接绑定到元素的属性上,比如onClick、onMouseOver等。当触发相应事件时,绑定的事件处理函数将被调用。 React采用了一种合成事件(Synthe…...
Docker容器:docker镜像的创建及dockerfile案例
文章目录 一.docker镜像的三种创建方法1.基于现有镜像创建1.1 启动镜像1.2 生成新镜像 2.基于本地模板创建2.1 OPENVZ 下载模板2.2 导入容器生成镜像 3.基于dockerfile创建3.1 dockerfile结构及分层3.2 联合文件系统3.3 docker镜像加载原理及过程 4.dockerfile操作常用的指令4.…...
Java虚拟机(JVM):引用计数算法
一、引言 我们学习了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭。栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来就已知的…...
【AGC】Publishing api怎么上传绿色认证审核材料
【问题描述】 华为应用市场会对绿色应用标上特有的绿色标识,代表其通过华为终端开放实验室DevEco云测平台的兼容性、稳定性、安全、功耗和性能的检测和认证,是应用高品质的象征。想要自己的应用认证为绿色应用就需要在发布应用时提供绿色认证审核材料&a…...
改变住宅区空气质量,你一定要知道!
在现代城市生活中,住宅区的环境质量对居民的健康和舒适感起着至关重要的作用。扬尘颗粒和噪声不仅直接影响人们的日常生活,还可能对居民的健康和生活品质造成持续的影响。 在不断提升环保意识的同时,政府、社区和居民也将共同努力,…...
【SpringCloud】Gateway使用
文章目录 概述阻塞式处理模型和非阻塞处理模型概念阻塞式处理模型 三大核心概念 工作流程使用POMYML启动类配置路由通过编码进行配置动态路由常用的Route Predicate自定义全局过滤器自定义filter 官网 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1…...
Spring之域对象共享数据
文章目录 前言一、requset域1.使用ServletAPI向request域对象共享数据2.使用ModelAndView向request域对象共享数据3.使用Model向request域对象共享数据4.使用map向request域对象共享数据5.使用ModelMap向request域对象共享数据6.Model、ModelMap、Map的关系 二、session域向ses…...
Redis巩固加强(帮助迅速梳理知识,同时适用初学者理解)
目录 Redis究竟是什么 Redis为什么能够做到这么快 Redis持久化机制 Redis如何实现过期的key的删除 Redis数据类型及应用场景 Redis的缓存穿透如何解决 什么是缓存穿透? 解决方案: 布隆过滤器 Redis如何解决缓存雪崩 什么是缓存雪崩 措施 Redis…...
Sui生态项目|集隐私通信、移动钱包、链上朋友圈和红包功能一体的社交应用ComingChat
ComingChat是在Sui网络上构建的去中心化社交平台,功能众多,其中加密聊天功能为用户提供了安全的沟通方式。该功能利用了Signal加密协议,这是一种在Signal、WhatsApp和Skype等应用中广受欢迎的开源软件协议。 ComingChat在Sui上提供了全面的…...
I2S/PCM board-level 约束及同步(latencyskewbitsync)
I2S/PCM是典型的低速串口,在两个方向上分别有两组信号,我们已soc为视角分为soc-adif和外设audio-codec。 那么adif输入: sclk_i, ws_i, sdi 当然并不是三个输入信号同时有效,只有adif RX slave时,三个输入都会有效…...
vue 富文本编辑器
安装 1、npm install wangeditor/editor --save 2、npm install wangeditor/editor-for-vue --save使用 .vue文件//展示<div style"border: 1px solid #ccc;width: 95%;"><!-- 工具栏 --><Toolbar style"border-bottom: 1px solid #ccc" …...
为什么说ChatGPT还不是搜索引擎的对手
一 前言 1950年,英国科学家图灵在一篇论文中预言,人类有可能创造出具有真正智能的机器。 著名的「图灵测试」就此诞生:如果一台机器能够与人类展开对话,而不被辨别出其机器身份,那么称这台机器具有智能。 也是从那时…...
2308C++协程流程
参考 #include <常用> #include <协程> #include "简异中.cpp" //用来中文定义的.元<类 T>构 同步{共针<T>值;同步(共针<T>p):值(p){输出<<"构建同步"<<行尾;//.8}同步(常 同步&s):值(s.值){输出<<&…...
C#实现稳定的ftp下载文件方法
当使用C#实现稳定的FTP下载文件的方法时,我们可以使用FtpWebRequest类来执行FTP操作,并根据需要添加错误处理和重试机制。下面是一个示例代码: using System; using System.IO; using System.Net;public class FTPDownloader {private const…...
基于圣女司幼幽-造相Z-Turbo的Java面试题智能生成与解析实战
基于圣女司幼幽-造相Z-Turbo的Java面试题智能生成与解析实战 最近在帮团队招聘Java工程师,一个很深的感触是:准备面试题太费劲了。不同岗位(比如后端开发和大数据开发)需要的技术栈侧重点完全不同,网上找的题目要么太…...
终极fabio配置验证指南:避免生产环境错误的10个实用技巧
终极fabio配置验证指南:避免生产环境错误的10个实用技巧 【免费下载链接】fabio Consul Load-Balancing made simple 项目地址: https://gitcode.com/gh_mirrors/fa/fabio fabio是一个快速、现代的零配置负载均衡HTTP(S)和TCP路由器,专为Consul管…...
PP-DocLayoutV3入门指南:从零开始理解bbox坐标、label_id、score字段含义
PP-DocLayoutV3入门指南:从零开始理解bbox坐标、label_id、score字段含义 1. 前言:为什么你需要了解这些字段? 如果你刚开始接触文档布局分析,看到PP-DocLayoutV3输出的JSON数据,可能会对里面那些bbox、label_id、sc…...
2025年Cursor免费续杯终极指南:绕过限制的自动化方案
1. 为什么需要Cursor免费续杯方案 作为一个长期使用AI编程工具的老用户,我完全理解学生和独立开发者面临的困境。Cursor作为一款优秀的AI编程助手,确实能大幅提升开发效率,但每月150次的免费额度对于项目开发来说实在捉襟见肘。特别是在调试和…...
YOLOv12涨点改进 | CVPR 2025 | 全网独家首发、Neck特征融合改进篇 | YOLOv12引入ADWM自适应双重加权融合模块,有效优化特征的加权与融合,减少冗余并增强目标特征
一、本文介绍 🔥本文给大家介绍使用ADWM模块改进YOLOv12目标检测网络模型,能够有效优化特征的加权与融合,减少冗余并增强目标特征的表现,提升目标检测的准确性和鲁棒性,特别是在多尺度、小目标和复杂背景下。通过ADWM的引入,YOLOv12的性能将得到显著改善,适应性和准确…...
从零开始构建你的渗透测试字典库:账号密码大字典与设备默认口令全解析
从零开始构建你的渗透测试字典库:账号密码大字典与设备默认口令全解析 在安全测试领域,一个高质量的字典库往往能决定渗透测试的效率上限。想象一下,当你面对一个需要爆破的系统时,手头拥有精准覆盖目标特征的字典,就…...
别再手动调参了!用C#和Halcon的HSmartWindow控件,5分钟搞定ROI绘制与参数提取
工业视觉开发革命:用C#封装Halcon ROI的智能实践 在半导体检测、精密零件测量等工业场景中,区域兴趣(ROI)的精准定义直接影响着算法效果。传统开发模式下,工程师需要反复在Halcon脚本与C#界面代码间切换,手…...
OpenGL 3D项目避坑指南:从贴图资源获取到交互菜单设计,我的CPT205大作业复盘
OpenGL 3D项目避坑指南:从贴图资源获取到交互菜单设计 当第一次接触OpenGL 3D项目时,许多计算机图形学学习者都会陷入相似的困境——如何在有限时间内完成一个既美观又功能完整的作品?本文将以CPT205课程大作业为例,分享从资源获取…...
ReflectiveDLLInjection实战:从源码编译到进程注入完整流程
ReflectiveDLLInjection实战:从源码编译到进程注入完整流程 【免费下载链接】ReflectiveDLLInjection Reflective DLL injection is a library injection technique in which the concept of reflective programming is employed to perform the loading of a libra…...
AI系统-23AI芯片CPU子系统介绍
AI SoC中有很多异构核,围绕着这些异构核产生了很多子系统之前也介绍过:AI系统-16AI SoC推理芯片架构介绍。 这里面的老大哥毫无疑问就是CPU子系统,尽管其他AI子系统特别是NPU,是干活的主力,但是头把交椅还得资格最老的CPU来坐&am…...
