
JVM
文章平均质量分 92
jeff-y
所有文章用于个人记录,仅供参考,有错误的地方还请指出错误。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JDK8使用G1 垃圾回收器能解决大问题吗?
本文想突出两个问题:解决问题的思路:从最原始的角度去思考,问题的本身是因为缓存数据导致的GC,那我们就应该去思考缓存数据是否合理,而不是去思考JVM的参数是否合理学习G1的知识,其关键的概念,关键参数,回收机制,已经相对CMS解决的两个问题:1.浮动垃圾 2.可预期的停顿时间1. 背景最近项目有两个问题加了内存缓存,防止穿透到redis的missCache,导致大量的GC。项目在每次发布的时候GC时间很长达到2s,导致大量的超时。就针对这两个问题进行了分析和优化。2. 问题分析首先原创 2022-01-16 17:15:00 · 7076 阅读 · 1 评论 -
Java 并发控制脑图
原创 2020-09-24 20:27:25 · 264 阅读 · 0 评论 -
JVM垃圾回收脑图
原创 2020-09-24 20:25:35 · 240 阅读 · 0 评论 -
理解java中的happens-Before
引言Java的内存模型是主内存和工作内存,我们在进行程序调用的时候,变量值都是从主内存中读取然后复制一个副本,对这个副本进行操作。到最后将这个副本再更新到主内存中。但是这个只是针对于单线程,那如果是多线程呢?并且操作的是同一个变量值,那这两个线程之间的可见性应该如何来定义呢?happen-Before简介java使用JMM模型后那就使用happen-before来阐述两个线程间的可见性在JMM中,如果一 个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在happens-befor原创 2020-09-22 21:26:50 · 591 阅读 · 1 评论 -
坑爹的一次堆内存分析!!
背景突然dingding 嗡嗡作响。内心一颤,打开一看。我早有一台服务内存95。机会来了,露一手。grafana 先观察了下。是慢慢的张上来的。说明有内存泄露。jps ,jstat 。命令baba一敲。一看机器起了20多天竟然有11万次FGC。说出来你都不信吧。忘记截图了。具体每次GC时间给忘了(有点不专业了)。于是使用jmap dump包(有风险,当时和同事还评估了一下,可以搞),完成后 ,然后重启这台服务。开始搞起由于是生产机器,root权限下没有同步环境变量。所以在刚开始使用jps j原创 2020-06-04 01:34:28 · 493 阅读 · 0 评论 -
java的反射机制到底是做什么的?
背景在学习java的动态代理的时候用到了反射机制,那我们来对反射机制深入了解一下权威指南通过wiki百科可知: 在计算机学中,反射(英语:reflection)是指计算机程序在运行时(runtime)可以访问、检测和修改它本身状态或行为的一种能力。[1]用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。在类型检测严格的面向对象的编程语言如Java中,一般需要在编译期间对程序中需要调用的对象的具体类型、接口、字段和方法的合法性进行检查。反射技术则允许将对需要调用的对象的信息检查工作从原创 2020-05-13 01:19:37 · 517 阅读 · 0 评论 -
请分清楚Java内存区域和Java内存模型
java内存区域是java虚拟机在执行java程序的时候会把它所管理的内存进行划分不同的数据区域。但是java内存模型是为了屏蔽各种硬件和操作系统的内存访问的差异,已实现java程序在不同的操作系统中都能达到一致的访问效果Java内存区域1. 线程共享区:堆:堆可分为eden区和survior to和survior from 区 刚创建的对象,且堆内存够放下这个对象,都会放在eden区。...原创 2020-05-04 00:44:23 · 232 阅读 · 0 评论 -
linux使用 source etc/profile
linux中的source etc/profile背景在生产环境使用arths heapdump 文件的时候,出现在root权限下使用java -jar arthas-boot.jar[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y10TjMi3-1588001939903)(01EF156FEEDD45F99CCB991E54CC6A38)]我们可以看...原创 2020-04-27 23:41:01 · 2312 阅读 · 0 评论 -
jvm线上内存问题排查
背景:正在和同事在外面吃饭,突然钉钉报警,有一个服务的机器内存飙到百分之90%多。和同事大概聊了一下说是队列累积,机器消费不过来,具体原因也没有深问,又一同事,说看一下是那个对象占的内存,使用jmap,jstat。当时我也在旁边围观,由于之前有看过,我就说jmap在生产环境敢使用吗?jmap,jstat的作用?jmap 是内存影像工具,jmap用于生成堆转储快照(一般称为dump或者hea...原创 2020-04-22 19:08:03 · 533 阅读 · 0 评论 -
类加载过程,双亲委派模型?
背景java通过字节码和JVM机制,提供了强大的跨平台能力,理解Java的类加载机制能让我们更加了解java的运行过程为什么要进行类加载?我们所写的java代码是我们人能看懂的,但是计算机并不认识它,所以我们就得把它进行转换,首先第一步就是得将我们所编写的 Java文件编译为class文件,然后通过我们的类加载过程将.class文件加载到内存且转换为计算机可以认识的语言。类加载过程?...原创 2020-03-23 23:08:05 · 679 阅读 · 0 评论 -
并发安全问题总结
什么是线程安全?答:当并发的时候不会出现竞台条件,多个线程访问更改同一个资源的时候,这个数据不会出现意料之外的情况。保证线程安全的几个基本特性?原子性,简单说就是相关操作不会中途被其他线程干扰,一般通过同步机制实现。可见性,是一个线程修改了某个共享变量,其状态能够立即被其他线程知晓,通常被解释为将线程本地状态反映到主内存上,volatile 就是负责保证可见性的。有序性,是保证线程内串...原创 2020-01-13 12:54:23 · 453 阅读 · 0 评论 -
JVM面试题
JVM面试题1. 内存模型以及分区,需要详细到每个区放什么。答:栈区**:栈分为java虚拟机栈和本地方法栈1) 重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。2) 每个方法执行都会创建一个栈帧,用于存放局部变量表,操作栈,动态链接,方法出口等。每个方法从被调用,直到被执行完。对应着一个栈帧在虚拟机中从入栈到出栈的过程。3...原创 2019-12-05 00:05:17 · 257 阅读 · 0 评论