Jvisualvm内存模型剖析-JVM(五)

上篇文章代码讲解了tomcat加载以及gc回收流程。

Jvm内存模型剖析优化-JVM(四)

  • Jvisualvm

 

我们可以编写如上代码,之后打开jvm自带的工具jvisualvm。

如果我们看visual不会明显变化,则可以修改睡眠参数,时间改小。

当我们运行程序,通过visual工具可以看到visual GC的运行情况,如我们上篇文章所说,他会从Eden到s0到s1,s0和s1反复拷贝,直到代龄达到15次,则会到old,最后导致OOM。

(如果有的同学没有visual GC则需要去工具->插件自行安装)

 

当我们老年代里越来越多,放满会怎么办呢,会触发full gc,他回收的整个堆和方法区。

但因为我们代码里对象还在一直引用回收不了,于是发生了OOM。

整个gc的过程中,有STW(stop the world)机制,会暂停用户线程,当用户下单的时候,gc过程可能会触发STW机制,这时候用户体验会受影响,会感受到网络卡顿。

每个年代垃圾收集器是不一样的,后面会一一详解。

元空间是什么,jdk1.8之前叫永久代,之后叫元空间,直接在物理内存。所以方法区是在物理内存里。初始值是21m,最大的会把物理内存全部用完。

二、设置参数大小

堆:-Xms2048M -Xmx2048M 新生代:-Xmn1024M

方法区:-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M

设置元空间最大值(默认-1)和初始空间大小(默认21,字节为单位)

建议最大值和初始值元空间设置一样大。

栈:-Xss512k

栈里是给一个线程用的,所以设置小点

可以执行命令

Java -Xms2048M -Xmx2048M -Xmn1024M

-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M

-Xss512k -jar mic-eureka-server.jar

 

我们写代码实例-Xss设置的小点,则count打印的更小,因为栈内存变小了,这也意味着可以有更多的线程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/35400.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue中的el-date-picker时间选择器的使用

1、value-format属性设置需要什么格式的时间 2、type类型选择datetime、date 年月日时分秒 <el-date-pickervalue-format"yyyy-MM-dd HH:mm:ss"v-model"excelRuleForm.startTime"type"datetime":placeholder"选择开始时间"> &…

【尚医通】vue3+ts前端项目开发笔记——项目分析

尚医通开发笔记 一、项目分析 项目在线地址&#xff1a;http://syt.atguigu.cn测试帐号&#xff1a;17720125002 首页 home header 全局组件布局 左&#xff1a;logo 、title中&#xff1a;初始隐藏 搜索框 公共组件显示条件&#xff1a;在页面滚动到页面内搜索框的位置显示…

爬虫入门04——requests库中的User-Agent请求头

import requests#定义请求的url url https://www.baidu.com/ #https://site.ip138.com/www.xicidaili.com/#发起get请求 res requests.get(url url)#获取响应结果#响应对象 print(res)#获取响应状态码 print(res.status_code)#获取响应数据 print(res.text) #返回的是字符…

mysql 关于用户的练习

环境&#xff1a; (1) 创建用户 create user account1localhost identified by oldpwd1; 授予权限&#xff1a; #给表授予权限 grant select,insert on Team.player to account1localhost identified by oldpwd1;#给info字段授予update权限 grant update(info) on Team.pl…

强化学习路径优化:基于Q-learning算法的机器人路径优化(MATLAB)

一、强化学习之Q-learning算法 Q-learning算法是强化学习算法中的一种&#xff0c;该算法主要包含&#xff1a;Agent、状态、动作、环境、回报和惩罚。Q-learning算法通过机器人与环境不断地交换信息&#xff0c;来实现自我学习。Q-learning算法中的Q表是机器人与环境交互后的…

综合实验---基于卷积神经网络的目标分类案例

文章目录 配置环境猫狗数据分类建模猫狗分类的实例基准模型猫狗分类的实例基准模型之数据增强问题回答 配置环境 ①首先打开 cmd&#xff0c;创建虚拟环境。 conda create -n tf1 python3.6如果报错&#xff1a;‘conda’ 不是内部或外部命令,也不是可运行的程序 或批处理文件…

C语言学习(三十五)---动态内存练习题与柔性数组

经过前面的内容&#xff0c;我们已经对动态内存的知识已经有了相当多了了解&#xff0c;今天我们再做几道有关动态内存的练习题&#xff0c;然后再介绍一下柔性数组&#xff0c;好了&#xff0c;话不多说&#xff0c;开整&#xff01;&#xff01;&#xff01; 动态内存练习题…

【真题解析】系统集成项目管理工程师 2021 年上半年真题卷(案例分析)

本文为系统集成项目管理工程师考试(软考) 2021 年上半年真题&#xff08;全国卷&#xff09;&#xff0c;包含答案与详细解析。考试共分为两科&#xff0c;成绩均 ≥45 即可通过考试&#xff1a; 综合知识&#xff08;选择题 75 道&#xff0c;75分&#xff09;案例分析&#x…

Pycharm使用Anoconda配置虚拟环境

目录 1.Anoconda的介绍 2.Anaconda的作用 3.Anaconda的安装 4.Anaconda的配置 4.1添加镜像源 4.2创建、使用并切换虚拟环境 5.pycharm的集成 1.Anoconda的介绍 Anaconda是一个可用于科学计算的 Python 发行版&#xff0c;可以便捷获取和管理包&#xff0c;同时对环境进行…

Docker 常用指令集合,更换镜像(Ubantu)

1.更换镜像 先进入root用户 cat /etc/docker/daemon.json 查看有没有镜像创建目录,创建并编辑damon,json文件 mkdir -p /etc/docker vim /etc/docker/daemon.json# 填写内容 {"registry-mirrors": ["https://h5rurp1p.mirror.aliyuncs.com"] } 重新启…

postgresql(一):使用psql导入数据库

使用psql导入数据库 1、概述2、具体问题3、总结 1、概述 大家好&#xff0c;我是欧阳方超。 听说postgresql越来越流行了&#xff1f;psql是一个功能强大的命令行工具&#xff0c;用于管理和操作PostgreSQL数据库。它提供了一个交互式环境&#xff0c;允许用户执行SQL查询、创…

PyTorch示例——ResNet34模型和Fruits图像数据

PyTorch示例——ResNet34模型和Fruits图像数据 前言导包数据探索查看数据集构建构建模型 ResNet34模型训练绘制训练曲线 前言 ResNet34模型&#xff0c;做图像分类数据使用水果图片数据集&#xff0c;下载见Kaggle Fruits Dataset (Images)Kaggle的Notebook示例见 PyTorch——…

部署 CNI网络组件

部署 flannel K8S 中 Pod 网络通信&#xff1a; ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容器是不会跨宿主机的&#xff09;共享同一个网络命令空间&#xff0c; 相当于它们在同一台机器上一样&#xff0c;可以用 localhost 地址访问彼此的端…

requests---jsonpath在接口自动化中的应用

目录 前言 jsonpath 通过下标提取 通过jsonpath提取 jsonpath的其他用法 通过$获取属性值内容 通过【*】获取对应值 通过切片获取对应值 总结 前言 我们在做接口测试时&#xff0c;大多数返回的都是json属性&#xff0c;我们需要通过接口返回的json提取出来对应的值&am…

浏览器种输入一个url到显示页面全过程

原文合集地址如下&#xff0c;有需要的朋友可以关注 本文地址 合集地址 所谓的‘三颗树’ 在浏览器中&#xff0c;当解析和加载网页时&#xff0c;会形成三个重要的树结构&#xff1a;DOM树、CSSOM树和渲染树&#xff08;Render Tree&#xff09;。这些树结构在网页的渲染和…

基于SQLI的SQL字符型报错注入

基于SQLI的SQL字符型报错注入 一. 实验目的 理解数字型报错SQL注入漏洞点的定位方法&#xff0c;掌握利用手工方式完成一次完整SQL注入的过程&#xff0c;熟悉常见SQL注入命令的操作。 二. 实验环境 渗透主机&#xff1a;KALI平台 用户名: college 密码: 360College 目标网…

web安全php基础_php数据类型

PHP 数据类型 PHP 支持以下几种数据类型: String&#xff08;字符串&#xff09;Integer&#xff08;整型&#xff09;Float&#xff08;浮点型&#xff09;Boolean&#xff08;布尔型&#xff09;Array&#xff08;数组&#xff09;Object&#xff08;对象&#xff09;NULL&…

算法----Nim 游戏

题目 你和你的朋友&#xff0c;两个人一起玩 Nim 游戏&#xff1a; 桌子上有一堆石头。 你们轮流进行自己的回合&#xff0c; 你作为先手 。 每一回合&#xff0c;轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函数&a…

Kubernetes 启动Pod的方法-Pod的调度算法-Pod间的通信-k8s的控制器-Pod资源控制-发布Service服务

目录 Pod 参考文档&#xff1a;Pod | Kubernetes Pod配置文件&#xff1a;simple-pod.yaml 对master进行如下操作 Pod的状态有&#xff1a; 参考文档&#xff1a;(70条消息) Pod生命周期中的状态解释_pod状态_闹玩儿扣眼珠子的博客-CSDN博客 进入Pod内的nginx容器&#…

Linux快速搭建Java环境

1. 安装JDK运行与调试 搭建Java环境 1. 安装JDK 打开命令行执行 sudo apt install default-jdk 有确定的选项直接y就行 安装拓展: 1 . 有时候vscode会自动弹出消息叫你安装拓展,直接点击全部安装就行了 2 . 未弹出或安装失败解决: 打开拓展搜索,把下面的,全部安装就行 这样就可…