
JVM/内存模型/调优/排错
iteye_7465
这个作者很懒,什么都没留下…
展开
-
内存模型 (memory model)
内存模型 (memory model)内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节.不同平台间的处理器架构将直接影响内存模型的结构.在C或C++中, 可以利用不同操作平台下的内存模型来编写并发程序. 但是, 这带给开发人员的是, 更高的学习成本.相比之下, java利用了自身虚拟机的优势, 使内存模型不束缚...原创 2008-07-10 19:41:23 · 171 阅读 · 0 评论 -
Memory Analysis Part 1 – Obtaining a Java Heapdump
For troubleshooting Java memory leaks and high memory usage problems, the heapdump is one of the most important analysis features. The advantage of heapdumps is that they can be produced in productive...原创 2011-03-14 16:06:12 · 104 阅读 · 0 评论 -
Thread Dump 和Java应用诊断
Thread Dump 和Java应用诊断 Thread Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都有及时生成显示所有线程在某一点状态的thread-dump的能力。虽然各个Java虚拟机thread dump打印输出格式上略微有一些不同,但是Thread dumps出来的信息包含线程;线程的运行状态、标识和调用的堆栈;调用的堆栈包含完整的类名,所执行的方法,如果可...原创 2011-03-30 08:08:22 · 138 阅读 · 0 评论 -
Java深度历险(四)——Java垃圾回收机制与引用类型
Java语言的一个重要特性是引入了自动的内存管理机制,使得开发人员不用自己来管理应用中的内存。C/C++开发人员需要通过malloc/free 和new/delete等函数来显式的分配和释放内存。这对开发人员提出了比较高的要求,容易造成内存访问错误和内存泄露等问题。一个常见的问题是会产生“悬挂引用(dangling references)”,即一个对象引用所指向的内存区块已经被错误的回收并重新分配...原创 2011-04-01 08:18:28 · 79 阅读 · 0 评论 -
理解Heap Profling名词-Shallow和Retained Sizes
所有包含Heap Profling功能的工具(MAT, Yourkit, JProfiler, TPTP等)都会使用到两个名词,一个是Shallow Size,另一个是 Retained Size.这是两个在平时不太常见的名词,本文会对这两个名词做一个详细的解释。Shallow Size对象自身占用的内存大小,不包括它引用的对象。针对非数组类型的对象,它的大小就是对象与它所有的成员变量大小的总...原创 2011-04-18 14:58:40 · 381 阅读 · 0 评论 -
Monitoring Java garbage collection with jstat
The original article is at : http://prefetch.net/blog/index.php/2008/01/16/monitoring-garbage-collection-with-jstat/ Java memory management revolves around the garbage collector, which is the e...原创 2011-04-18 15:28:09 · 95 阅读 · 0 评论 -
两个OOM Cases排查过程的分享
分享一下两个OOM Cases的查找过程,一个应用是Native OOM;另外一个应用其实没有OOM,只是每隔一段时间就会出现频繁FGC的现象,OOM的查找已经具备了不错的工具,但有些时候还是会出现很难查的现象,希望这两个排查过程的分享能给需要的同学带来一些帮助。Native OOM的排查Case之前的几个PPT里我都说到了,目前查找Native OOM最好的方法就是用google perft...原创 2011-04-18 15:39:00 · 112 阅读 · 0 评论 -
十个最好的Java性能故障排除工具
推荐十个最好的Java性能故障排除工具: 1.jconsole是随着JDK 1.5而推出的。这是一个Java监测和管理控制台-JMX兼容的图形工具来监测Java虚拟机。它能够同时监测本地和远程的JVMs。详情可查看:jconsole工具介绍 2.VisualVM 集成了几个现有的JDK软件工具,轻量级内存和CPU信息概要能力。这个工具被设计为同时在生产和开发时使用,进一步提高监视的能力...原创 2011-04-18 16:02:52 · 92 阅读 · 0 评论 -
大方法的执行性能与调优过程小记
该文章转载自:http://rdc.taobao.com/team/jm/archives/552 你写过超过2500行的方法么?通常来说,这么大的方法并不多见,一般都是使用机器辅助生成的为主,这种情况在模板编译或其它语言的自动转换中比较常见。例如,对一个复杂的JSP页面,机器有可能会为它生成一个复杂的servlet方法去实现。然而在Hotspot上运行这种大方法,很可能会有性能问题。...原创 2011-04-18 16:20:50 · 101 阅读 · 0 评论 -
BTrace使用简介
该文转载自:http://rdc.taobao.com/team/jm/archives/509 很多时候在online的应用出现问题时,很多时候我们需要知道更多的程序的运行细节,但又不可能在开发的时候就把程序中所有的运行细节都打印到日志上,通常这个时候能采取的就是修改代码,重新部署,然后再观察,但这种方法对于online应用来说不是很好,另外一方面如果碰到不好改的代码,例如引用的其他的外...原创 2011-04-19 13:51:53 · 123 阅读 · 0 评论 -
Java Memory Leaks et al. (2. Act)
The first act of this blog-series Java OutOfMemoryError – A tragedy in seven acts described the architecture of JVM memory and discussed where a java.lang.OutOfMemoryError could occur.So let’s have ...原创 2011-03-14 15:37:45 · 169 阅读 · 0 评论 -
Erlang memory architecture vs Java memory architecture
I read a really, really interesting article on memory management strategies for the Erlang VM. It was written as a thesis by Jesper Wilhelmsson: http://www.it.uu.se/research/publications/lic/2005-001/...原创 2011-03-14 15:36:23 · 184 阅读 · 0 评论 -
The Java Memory Architecture (1. Act)
One of the biggest strength of the Java Platform is the implementation of an automatic memory management in the Java Virtual Maschine. Everybody who has programmed with languages like C/C++ knows abou...原创 2011-03-14 15:15:42 · 452 阅读 · 0 评论 -
★ Java内存管理特点
★ Java内存管理特点 Java一个最大的优点就是取消了指针,由垃圾收集器来自动管理内存的回收。程序员不需要通过调用函数来释放内存。 1、Java的内存管理就是对象的分配和释放问题。 在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。 对象的释放是由GC决定和执行的。 在Java中,内存...原创 2008-07-10 19:41:49 · 106 阅读 · 0 评论 -
OOM与JVM(转)
OOM与JVM(转)2008年08月08日 星期五 15:46OOM这个缩写就是Java程序开发过程中让人最头痛的问题:Out of Memory。在很多开发人员的开发过程中,或多或少的都会遇到这类问题,这类问题定位比较困难,往往需要根据经验来判断可能出现问题的代码。原因主要是两个:对象没有被释放(多种情况引起,往往是比较隐蔽的引用导致被Hold而无法被回收)。另一种就是真的Mem...原创 2009-03-24 15:49:06 · 76 阅读 · 0 评论 -
The Top Java Memory Problems – Part 1
转载:http://blog.dynatrace.com/2011/04/20/the-top-java-memory-problems-part-1/ Memory and Garbage Collection problems are still the most prominent issues in any java application. One of the reasons ...原创 2011-05-18 11:01:58 · 136 阅读 · 0 评论 -
JVM指令集 和 一个异常例子
指令码助记符说明0x00nop什么都不做0x01aconst_null将null推送至栈顶0x02iconst_m1将int型-1推送至栈顶0x03iconst_0将int型0推送至栈顶0x04iconst_1将int型1推送至栈顶0x05iconst_2将int型2推送至栈顶...原创 2011-05-19 16:14:39 · 141 阅读 · 0 评论 -
JVM启动参数
java [jvmargs] class [arguments] 1.2 标准参数 1.-server -client 虚拟机服务器模式/客户机模式,使用server模式可以提高性能,启动比client模式慢,长期运行则比client模式快。当该参数不指定时,虚拟机启动检测主机是否为服务器,如果是则以server模式启动,否则以client模式启动,J2SE5.0检测的根据是至少2个CPU和最低2...原创 2011-06-10 16:27:18 · 118 阅读 · 0 评论 -
JVM结构
类文件格式JVM使用一种硬件、操作系统无关的二进制格式来保存编译后的代码。数据类型和Java语言一样,JVM操作两种数据类型:基本类型和引用类型。类型检验应该在编译期完成,JVM不需要负责类型检验。JVM根据指令来分辨操作数的类型:iadd -> intladd -> longfadd -> floatdadd -> doubleJVM显式的支持“对象”的概念。...原创 2011-03-10 14:43:32 · 98 阅读 · 0 评论 -
Java虚拟机垃圾回收机制
一、相关概念 基本回收算法 引用计数( Reference Counting ) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为 0 的对象。此算法最致命的是无法处理循环引用的问题。 标记 - 清除( Mark-Sweep ) 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未...原创 2011-03-13 09:31:51 · 94 阅读 · 0 评论 -
JVM内存模型以及垃圾回收
内存由 Perm 和 Heap 组成. 其中Heap = {Old + NEW = { Eden , from, to } }JVM内存模型中分两大块,一块是 NEW Generation, 另一块是Old Generation. 在New Generation中,有一个叫Eden的空间,主要是用来存放新生的对象,还有两个Survivor Spaces(from,to), 它们用来...原创 2011-03-13 09:38:40 · 93 阅读 · 0 评论 -
Permanent generation
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://fallenlord.blogbus.com/logs/57543373.html 众所周知,Java从1.2开始引入分带GC策略,JVM内存被分成了3个带:young generate、tenured generation和permanent generation前面两个带相信大家已经非常熟悉了,一般我们所说的...原创 2011-03-14 14:53:00 · 203 阅读 · 0 评论 -
JVM 深入笔记
JVM 深入笔记(1)内存区域是如何划分的?一个超短的前言 JVM 是一个从事 Java 开发的软件工程师的修炼之路上必然要翻阅的一座山。当你了解了 Java 的基本语言特性,当你熟悉了 Java SDK 中的常用 API,当你写过一些或大或小的程序后,你就会有去了解 JVM 的需求出现。如果你现在没有这种感觉,那么可能此时去了...原创 2012-04-12 20:36:10 · 144 阅读 · 0 评论