转自:http://blog.csdn.net/chen77716/article/details/5695893 一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存 ...
分类:
其他好文 时间:
2017-05-01 00:20:47
阅读次数:
284
这次看一些关于JVM内存分析的内容。 首先来看两个程序,这里是程序一:JVMStackTest,看下代码: package com.zhyea.robin.jvm; public class JVMStackTest { private static int count = 0; private v... ...
分类:
编程语言 时间:
2017-04-30 11:02:56
阅读次数:
215
运行时数据区包括:虚拟机栈区,堆区,方法区,本地方法栈,程序计数器 虚拟机栈区 :也就是我们常说的栈区,线程私有,存放基本类型,对象的引用和 returnAddress ,在编译期间完成分配。 堆区 , JAVA 堆,也称 GC 堆,所有线程共享,存放对象的实例和数组, JAVA 堆是垃圾收集器管理 ...
分类:
编程语言 时间:
2017-04-29 13:42:26
阅读次数:
157
机器类别 监控类别 指标名称 指标范围(通过) 应用服务器(jvm和配置) JVM jvm内存占用率<=70% 线程池连接数 线程池连接数<=80%,没有出现线程阻塞、死锁现象 数据库活动连接数 数据库活动连接数<=85% full gc频率 大于平均半小时1次GC 是否有异常日志 日志信息中,无错 ...
分类:
其他好文 时间:
2017-04-28 10:21:38
阅读次数:
153
大多数JVM将内存区域划分为MethodArea(Non-Heap)(方法区),Heap(堆),ProgramCounterRegister(程序计数器),VMStack(虚拟机栈,也有翻译成JAVA方法栈的),NativeMethodStack(本地方法栈),其中MethodArea和Heap是线程共享的,VMStack,NativeMethodStack和ProgramCount..
分类:
其他好文 时间:
2017-04-27 19:30:27
阅读次数:
120
学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论J..
分类:
其他好文 时间:
2017-04-27 11:39:24
阅读次数:
193
首先线上开启了dump的参数 dump的内容有2G,先进行压缩打包,传输至本地(scp) tar -czvf dump.tar java_pid4824.hprof 使用Jprofile打开dump文件 发现导致内存溢出的是几个PreparedStateMent,查看其内容,发现时插入业务日志的sq ...
分类:
其他好文 时间:
2017-04-27 00:34:43
阅读次数:
290
一、JVM 1、内存模型 1.1.1 内存分几部分 (1)程序计数器 可看作当前线程所执行的字节码的**行号指示器**。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 在线程创建时创建。执行本地 ...
分类:
编程语言 时间:
2017-04-25 13:36:06
阅读次数:
1362
了解Java GC机制,必须先清楚在JVM中内存区域的划分。 JVM的体系结构如下:JVM的类加载系统、执行引擎系统、垃圾回收器都是去访问 运行时数据区。 JVM管理的内存区域分为几个模块: (未完待续。。。) ...
分类:
编程语言 时间:
2017-04-23 19:32:28
阅读次数:
164
学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前 ...
分类:
编程语言 时间:
2017-04-23 01:12:18
阅读次数:
137