加载中
在命令行中使用Eclipse MAT工具

最近应用在测试中出现Out Of Memory的问题, 通过jmap查看,发现JVM heap全用满了。 有很多工具可以查看JVM堆的信息, 收费的比如JProfiler, YourKit,免费的如Oracle JDK自带的visualvm, j...

2016/12/09 23:19
147
在Linux上编译OpenJDK7源码 | Compile OpenJDK7 source code on CentOS 6.5

# 软件环境丨Software Environment OS:CentOS 6.5 JDK: OpenJDK-7u40 # 准备工作丨Preparation 下载源码包 | Download source code package OpenJDK Source Releases 解压源码包 | Decompre...

2016/12/09 22:43
358
JVM:jmap -histo

JVM:jmap -histo

2016/08/20 18:20
2.7K
窥探JVM内存分配和回收的过程

一、环境 JDK 垃圾收集器 是否启用TLAB 通用JVM参数(堆内存分配见下图) 1.6.0_65 Serial + Serial Old 否 -Xms20m -Xmx20m -Xmn10m -XX:SurvivorRatio=8 二、说明 Minor GC 发生在新生代,...

2016/08/03 23:42
116
java线程安全和锁机制详解

在开始这篇blog之前应该先了解几个概念: 临界区: 临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入...

2016/08/01 22:42
85
JVM堆内存设置和测试

首先Java虚拟机中gc的原理,可以参见 http://www.360doc.com/content/12/1023/16/9615799_243296263.shtml http://ifeve.com/useful-jvm-flags-part-5-young-generation-garbage-collection/...

2016/07/28 21:36
115
【总结】JVM模型

JVM的每个实例都有一个它自己的方法域和一个堆,运行于JVM内的所有的线程都共享这些区域 当虚拟机装载类文件的时候,它解析其中的二进制数据所包含的类信息,并把它们放到方法域中 当程序运行...

2016/07/27 01:47
38
一张图让你看懂JAVA线程间的状态转换

线程间的状态转换: 1. 新建(new):新创建了一个线程对象。 2. 可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等...

2016/07/25 00:11
138
Java并发编程:Thread类的使用

Java并发编程:Thread类的使用   在前面2篇文章分别讲到了线程和进程的由来、以及如何在Java中怎么创建线程和进程。今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识...

2016/07/25 00:10
14
学习java线程状态和看懂thread dump文件中的线程信息

线程的状态是一个很重要的东西,因此thread dump中会显示这些状态,通过对这些状态的分析,能够得出线程的运行状况,进而发现可能存在的问题。线程的状态在Thread.State这个枚举类型中定义:...

2016/07/25 00:09
85
JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)

前提概要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可...

Java线程:什么是线程

一、什么是线程 线程是指令的执行路径。在Java语言中,线程无处不在,每一个计算机程序最少都有一个线程。例如下面的程序 package study.thread.chapter2.example1; /** * calculate the...

2016/07/22 23:59
125
java线程:Atomic(原子的)

一、何谓Atomic? Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位。计算机中的Atomic是指不能分割成若干部分的意思。如果一段代码被认为是Atomic,则表示这段代码在执行过程中,...

2016/07/22 23:45
42
java中volatile关键字的含义

在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。 Java语言是支持多线程的,为了解决线程并发的问题...

2016/07/22 23:20
16
线上应用故障排查之一:高CPU占用

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。 (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen) 以我们最近...

2016/07/22 19:54
134
分析定位占用CPU资源高的JVM线程

分析定位占用CPU资源高的JVM线程 1. 获得高负载的进程号pid : ps -ef | grep java 2. 执行shell 脚本(topthread.sh)来分析定位占用CPU资源的线程; 3. 分析线程对应的代码片段来优化修复问题....

2016/07/22 18:47
95
JVM调优经验分享

前言 一、JVM调优知识背景简介 二、JVM调优参数简介 三、JVM调优目标 四、JVM调优经验 结束语 前言 本次分享探讨的JVM调优是指server端运行的JVM调优,适应版本为[1.6– 1.7], 不涉及最新的1...

2016/07/22 18:46
266
java 虚拟机--新生代与老年代GC

1. Java堆中各代分布: 图1:Java堆中各代分布 Young:主要是用来存放新生的对象。 Old:主要存放应用程序中生命周期长的内存对象。 Permanent:是指内存的永久保存区域,主要存放Class和M...

2016/07/19 20:58
107
JVM GC调优一则--增大Eden Space提高性能

缘起 线上有Tomcat升级到7.0.52版,然后有应用的JVM FullGC变频繁,在高峰期socket连接数,Cpu使用率都暴增。 思路 思路是Tomcat本身的代码应该是没有问题的,有问题的可能是应用代码升级,或...

2016/07/17 01:34
671
成为Java GC专家(4)—Apache的MaxClients参数详解及其在Tomcat执行Ful

这是“成为Java GC专家系列文章”的第四篇。 在第一篇文章 成为JavaGC专家Part I — 深入浅出Java垃圾回收机制 中我们学习了不同GC算法的执行过程,GC如何工作,新生代及老年代的基本概念,在...

2016/07/17 00:27
109

没有更多内容

加载失败,请刷新页面

返回顶部
顶部