
JVM
文章平均质量分 68
我才是真的封不觉
某外企高级开发,菜鸟一个,希望在博客记录自己技术的成长,目标是成为一个好脾气的技术大牛。
b站账号 觉哥学java
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
突然 系统卡顿CPU飙高? 莫名 OOM?强软弱虚引用咋用?垃圾回收参数咋设置?选哪个垃圾收集器? 宕机?如何写出优质代码?想要系统性了解JVM内存调优?JVM 就决定用你了
一、前言 1.1JVM是什么 1.2JVM与JDK JRE的关系 1.3为啥要学JVM 1.4常见的JVM 1.5学习路线 二、内存结构 2.1程序计数器 记住 它是线程私有 是用来记录 某线程下一次执行字节码指令的地址的 2.2栈 2.2.1 介绍 记住:栈是先进后出的 如下图二 里面存放的是一个个栈帧,活动栈帧 只有一个 栈帧里面存放的是方法参数 局部变量 返回地址啥的 2.2...原创 2021-10-14 19:01:51 · 315 阅读 · 0 评论 -
day95-性能压测-优化-堆内存调优及模拟线上应用内存崩溃宕机情况
之前因为没有配置动静分离,一个访问首页的动态请求可能就携带几十个静态请求,现在配置动静分离后 再来进行压力测试 聚合报告 填表 可以看到,获取首页全量数据,动静分离后吞吐量有一定提升,但是也不算很多 如下,之前一直说的由于新生代内存太小导致频繁minorgc消耗大量时间 原本我们堆内存设置为:最大堆内存为512m 现在设置为最大,最小堆内存都为2048m,也就是堆内存为2048m,新生代设置为1024m 再来压测吞吐量又提升了 填表 下面来模拟宕机...原创 2021-02-03 23:48:32 · 197 阅读 · 0 评论 -
day92-性能压测-优化-中间件对性能的影响
1.目的 了解中间件对请求的性能的影响 2.流程知晓 首先要清楚我们访问首页,获取首页数据的流程 因为我们添加了本机映射如下,访问http://gulimall.com/就等于访问了虚拟机192.168.56.10的80端口 ,我们之前在nginx又添加了虚拟机80端口监听 负载均衡到上游服务器-》网关 ,然后网关主机路由到商品服务的首页,详细步骤参考链接 https://blog.youkuaiyun.com/JavaCoder_juejue/article/details/11285802...原创 2021-02-03 03:11:41 · 494 阅读 · 1 评论 -
day91-性能压测-性能监控-jvisualvm使用
1.jvisualvm能做什么 jvisualvm相当于升级版的jconsole 2.启动方式 因为是jdk自带的 cmd窗口输入jvisualvm 打开界面如下,左边为正在运行的本地进程 双击左侧某进程后界面如下 默认不能监控垃圾回收,需要安装插件 3.配置插件中心地址 查看jdk版本 打开如下链接 http://visualvm.github.io/pluginscenters.html 找到所属jdk版本范围对应链接,复制后 更新插件中心地址...原创 2021-01-27 10:51:56 · 218 阅读 · 0 评论 -
day90-性能压测-性能监控-堆内存与垃圾回收
下面两张图就了解下不是我们这里重点关注的,为了引出堆,堆是我们内存调优中关注的一个重点对象 所有的对象实例及数组都在堆上进行分配。堆是垃圾收集器管理的主要区域,也被称为GC堆;也是我们优化最多考虑的地方。 堆可以划分为 JVM结构图,重点关注堆 重头戏来了 下图体现了大致的流程,左侧新生代,右侧老年代 先懂俩概念: minor GC :针对新生代中的伊甸园区GC,清除其内无用的对象,时间相对短 full GC清除堆空间(包含新生代与老年代)所有无用对象,大扫除,比..原创 2021-01-22 02:55:25 · 270 阅读 · 0 评论 -
day87-性能压测-压力测试-Apache JMeter安装配置使用+最大堆内存设置调优
1.下载安装 https://jmeter.apache.org/download_jmeter.cgi 下载如下zip文件 下载好后解压 2.运行 找到bin目录下的如下bat文件双击即可运行 3.配置 启动后字体巨小无比 (1)改bin目录下的properties文件里的默认字体 (2)打开界面后字体还是很小于是...如下,多点几下 (3)语言选择简体中文 页面变成这样总算舒服点了 4.使用 我们测试都是模拟多少个人同时请求某接口来测试其性能怎样 (1)...原创 2021-01-21 00:24:03 · 454 阅读 · 0 评论 -
反编译指令传送门
传送门原创 2019-10-21 17:32:51 · 188 阅读 · 0 评论 -
二。为什么java开发人员要学习jvm
可能我们之前就只知道java语言跨平台的实现是因为有针对不同平台有对应的虚拟机。刚开始编程的时候发现内存溢出了,然后就改了下虚拟机的参数,发现就能正常跑了,后面我们的项目上线了,由于有大量的用户访问,发现内存溢出或者我们需要对服务器的监控等灯问题,就知道虚拟机学习的重要性了 但是虚拟机的学习上理论比较多,所以我列了个大纲 当我们理解虚拟机后,会发现写的代码更上了一个层次。...原创 2018-10-10 22:52:24 · 977 阅读 · 0 评论 -
四。JVM初体验,内存溢出场景模拟,分析与解决(堆内存快照生成与分析工具java memory analyzer的使用)
当运行如下代码后,可以看到,堆内存逐渐减少,cpu使用率逐渐变高然后控制台报错(见最下面) package com.jvm.test; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) { Li...原创 2018-10-11 16:18:41 · 1165 阅读 · 0 评论 -
三。JVM学习前的准备
首先要理清JDK,JRE与JVM的关系 如下图,JDK包括JRE,JRE包括JVM,开发者只需要安装JDK,运行时只需安装JRE,我们装好JDK就内置了JVM, 安装jdk1.8点这 java环境变量配置点这 学习jvm时,最好要有一定的java基础,因为学着学着你会颠覆对java的价值观,并且有更深的理解 对了,记得下个eclipse,后续jvm笔记是使用eclipse进行学习记录下来...原创 2018-10-11 11:26:45 · 367 阅读 · 0 评论