
JVM
文章平均质量分 73
五二言
希望在交流中学习,在学习中接近自己的目标
展开
-
了解Java内存区域、内存模型与硬件架构
几个要点记录:(1)触发时机:程序运行时(2)发起对象:Java虚拟机(3)线程共享的数据区域:方法区、堆(4)线程私有数据区域:虚拟机栈、本地方法栈、程序计数器各区域概述1、方法区存储:已被虚拟机加载的类信息、常量、静态变量以及编译后的代码等数据。特殊要点:(1)运行时常量池。存储:编译期生成的各种字面量和符号引用。(2)字面量:文本字符串和申明为final的变量;符号引用量...原创 2019-02-18 13:32:51 · 389 阅读 · 0 评论 -
系统性能指标与调优思路——常用的性能调优方法
在明确性能指标后,我们针对这些性能指标,需要选择一些方法来提升系统性能。缓存缓存通常需要用空间换时间,在击中率较高的情况下,缓存通常能提升系统性能,这一句话从反面来看,即如果无法保证热点击中的频率,那么缓存反而是一种不好的策略。因此,使用缓存有一定的限制条件。有以下几种场景会使用到缓存:对于一个web应用来说,浏览器会有缓存,cookie或者session,cdn等。后端则有本地缓存、分布...原创 2019-01-21 22:32:15 · 1282 阅读 · 0 评论 -
系统性能指标与调优思路(一)
参考文档:性能优化指南:性能优化的一般性原则与方法http://www.cnblogs.com/xybaby/p/9055734.htmllazy ideas in programming(编程中的惰性思想)http://www.cnblogs.com/xybaby/p/6425735.html...原创 2018-12-26 22:03:15 · 1356 阅读 · 0 评论 -
理解JMM模型的原子性、可见性与有序性
我们需要去了解JMM存在的意义,作为一组规则,我们不能别人要我们有,我们就得有这个规则,我们得尝试去理解JMM作为一组规则存在的意义。我们在之前已经了了解到JVM实际运行程序的时以线程为实体,在创建线程的时候,JVM虚拟机会尝试给他们创建栈空间,即工作空间,来作为线程本身私有数据的存储空间。线程从主存取出数据后进行更新,然后重新写入主存中。主存的数据是实体,单一线程拿到的实际是数据的镜像。这里会...原创 2019-04-28 21:24:16 · 1036 阅读 · 0 评论 -
从代码热替换谈谈类加载机制
知识点谈谈Tomcat的代码热替换与模块的热部署各自使用场景实现原理谈谈OSGI的模块化热部署了解类加载机制与双亲委派机制概念类加载器如何破坏双亲委派机制其他应用场景目标我希望:(1)学习到代码热替换/模块热部署的实现原理(2)了解Java的类加载机制、双亲委派机制(3)破坏双亲委派机制的场景(4)初步了解OSGI正文玩过Tomcat的朋友都应该了...原创 2019-04-28 23:06:51 · 519 阅读 · 0 评论 -
JVM问题快速排查手册
查看JVM启动参数jps -vjinfo -flags pidjinfo pid – 列出JVM启动参数和system.propertiesps -ef | grep java查看当前堆的配置jstat -gc pid 1000 3 – 列出堆的各个区域的大小jstat -gcutil pid 1000 3 – 列出堆的各个区域使用的比例jmap -heap pi...原创 2019-04-28 23:13:02 · 500 阅读 · 0 评论 -
Dubbo自适应拓展学习笔记
关于阅读开源代码的一些想法在编写本文前,其实已经写了一篇关于Dubbo 自适应拓展特性的草稿,但是通篇写下来,所做的也不过是copy-write的过程,这样的文章对于我来说,又有什么意义呢?尽管我多次想编写一篇详尽有效的文档,试图如同大神一样去理清Dubbo源码的脉络,但是深入其间才发现力有所不逮。因此便重新把那篇文章给删了,推倒重来,将阅读人群从别人转向自己。这样一来,就变得清晰简单的许多...原创 2019-05-29 22:30:45 · 1398 阅读 · 0 评论