JVM的内存结构: 线程共享:堆(存放创建的各种对象),方法区(存放类信息,静态变量,常量池) 线程私有:栈(每个线程都有自己的栈空间,存放每个方法的局部变量),程序计数器(记录当前字节码指令的位置,执行到拿哪一条字节码指令),本地方法栈(跟栈类似,不同的是执行的native方法) JVM什么时候会 ...
分类:
其他好文 时间:
2019-10-05 20:31:35
阅读次数:
122
HBase中JVM基本配置 在JVM中,默认情况下会设置minimum heap size 为 1/64 可用物理内存,并为maximum heap size设置 1/4 的物理可用内存(不过在Java8 之前,默认最大是1g)。当然,我们可以通过手动指定 JVM 参数,配置JVM的内存,例如: 在 ...
分类:
其他好文 时间:
2019-09-23 18:04:56
阅读次数:
129
1. 说说JVM的内存分区 线程私有的区域 程序计数器:JVM中程序计数器相当于汇编语言中的CPU中的寄存器,保存程序当前执行的指令的地址。 虚拟机栈:Java方法执行的栈由许多个栈帧构成,每个栈帧对应一个被调用的方法,在栈帧中包括局部变量表(Local Variables)、操作数栈(Operan ...
分类:
编程语言 时间:
2019-09-23 15:25:13
阅读次数:
119
之前看过《深入了解Java虚拟机》感觉容易忘,今天写一篇博客加深一下印象。 JVM的内存分配和垃圾回收(GC)主要发生在Java堆中。而Java堆根据对象的存活时间可以分为新生代和老年代,而新生代又细分为Eden区、From Survivor区、To Survivor区,这是由于新生代中的垃圾回收算 ...
分类:
其他好文 时间:
2019-09-09 22:20:02
阅读次数:
109
某些热点数据在短时间内可能会被成千上万次访问,所以除了放在redis之外,还可以放在本地内存,也就是JVM的内存中。 我们可以使用google的guava cache组件实现本地缓存,之所以选择guava是因为它可以控制key和value的大小和超时时间,可以配置LRU策略且guava是线程安全的。 ...
分类:
系统相关 时间:
2019-09-09 19:29:40
阅读次数:
141
对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。 JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为 ...
分类:
其他好文 时间:
2019-08-29 11:41:02
阅读次数:
70
概念 (这是我学习过程中的一些总结) JAVA虚拟机内存模型 从属于线程的内存区域 JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;我们将这部分归为一类。 1.程序计数器(Program Counter Register) 在JVM规范中,每个线程都有自己的程序计数器。这是一 ...
分类:
编程语言 时间:
2019-08-28 22:22:09
阅读次数:
125
1、 JVM的内存模型 a) Java虚拟机的内存空间分为五个部分:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区 b) 程序计数器:程序计数器中存放的是当前线程正在执行的字节码指令的地址。如果当前线程执行的一个本地方法,那么当前的程序计数器为空。 i. 字节码解释器通过程序计数器来依次读取指 ...
分类:
其他好文 时间:
2019-08-19 13:00:34
阅读次数:
59
前言: 由于最近写的程序在运行一段时间后出现高cpu,然后不可用故进而进行排查,最终定位到由于metaspace引起fullgc,不断的fullgc又占用大量cpu导致程序最终不可用。下面就是这次过程的分析排查和总结,便于以后温故,同时也希望能给遇到同样问题的同学一些参考。 一 jvm的内存分配情况 ...
分类:
Web程序 时间:
2019-08-09 17:38:15
阅读次数:
118
1. 概述 1. win 10 内存时不时溢出 2. 目前还没有跟踪完毕 1. 有空继续跟踪 2. 问题 1. win10 内存动不动就 往上涨 1. 只涨不降 2. 看各个进程又是正常的 3. 思路 1. 先看看内存情况 1. 妈的我 jvm 的内存都分析不清楚, 这下要看 windows 的.. ...