上一页 1 ··· 3 4 5 6 7
摘要: 1、介绍打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。可以输出所有内存中对象的工具,甚至可以将VM中的heap,以二进制输出成文本。使用方法jmap-histopid。如果连用SHELLjmap-histopid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap-dump:format=b,file=outfile3024可以将3024进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具(MemoryAnalysisTool),使用参见:http://blog 阅读全文
posted @ 2013-09-11 00:39 为了生活,加油 阅读(933) 评论(0) 推荐(0) 编辑
摘要: 1.JMM简介 i.内存模型概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多,该语言针对多种异构平台的平台独立性而使用的多线程技术支持也是具有开拓性的一面,有时候在开发Java同步和线程安全要求很严格的程序时,往往容易混淆的一个概念就是内存模型。究竟什么是内存模型?内存模型描述了程序中各个变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存中取出变量这样的底层细节,对象最终是存储在内存里面的,这点没有错,但是编译器、运行库、处理器或者系统缓存可以有特权在变量指定内存位置存储或者取出变量的值。【JMM.. 阅读全文
posted @ 2013-07-12 20:52 为了生活,加油 阅读(2286) 评论(0) 推荐(0) 编辑
摘要: JVM结构Java编写的代码会按照下图的流程来执行类装载器装载负责装载编译后的字节码,并加载到运行时数据区(Runtime Data Area),然后执行引擎执行会执行这些字节码。类加载器(Class Loader)Java提供了动态的装载特性;它会在运行时的第一次引用到一个class的时候对它进行装载和链接,而不是在编译期进行。JVM的类装载器负责动态装载。Java类装载器有如下几个特点:层级结构:Java里的类装载器被组织成了有父子关系的层级结构。Bootstrap类装载器是所有装载器的父亲。代理模式:基于层级结构,类的装载可以在装载器之间进行代理。当装载器装载一个类时,首先会检查它是否在 阅读全文
posted @ 2013-07-11 16:50 为了生活,加油 阅读(817) 评论(0) 推荐(0) 编辑
摘要: 虚拟机(Virtual Machine)JRE是由Java API和JVM组成的。JVM的主要作用是通过Class Loader来加载Java程序,并且按照Java API来执行加载的程序。虚拟机是通过软件的方式来模拟实现的机器(比如说计算机),它可以像物理机一样运行程序。设计虚拟机的初衷是让Java能够通过它来实现WORA(Write Once Run Anywhere一次编译,到处运行),尽管这个目标现在已经被大多数人忽略了。因此,JVM可以在不修改Java代码的情况下,在所有的硬件环境上运行Java字节码。Java虚拟机的特点如下:基于栈的虚拟机:Intel x86和ARM这两种最常见的 阅读全文
posted @ 2013-07-11 16:37 为了生活,加油 阅读(579) 评论(0) 推荐(0) 编辑
摘要: “C4: The Continuously Concurrent Compacting Collector” (Gil Tene, Balaji Iyengar and Michael Wolf; Proceedings of the International Symposium on Memory Management, 2011): Learn more about the C4 algorithm and shattered object moves. “Garbage-first garbage collection” (David Detlefs, et al., 2004, Proceedings of the 4th international Symposium on Memory Management, 2004): Learn more about the G1 algorithm. (Paid access on the ACM website.) “G1: Java’s Garbage First Garbage Collector” (Eric J. B 阅读全文
posted @ 2013-07-11 15:41 为了生活,加油 阅读(936) 评论(0) 推荐(0) 编辑
摘要: java的泛型所采用的是一种类型消除(type erasure)的机制来实现的。编译器使用泛型类型信息来编译代码,但是随后会消除它。所以,泛型信息只是在编译器可用,而在运行时是不可用的。这种机制的好处在于可以使泛型代码向后兼容使用原始类型的遗留代码。在编译时,一旦编译器确认泛型类型是安全使用的,就会将它转换为原始类型。举个例子:ArrayList<String> list= new ArrayList<String>();list.add("xxxxxxx");String state = list.get(0);编译器会检查上面代码里泛型是否被正确 阅读全文
posted @ 2013-04-23 00:01 为了生活,加油 阅读(828) 评论(0) 推荐(0) 编辑
摘要: 1、下载集成CDT插件的eclipse 版本(Eclipse IDE for C/C++ Developers),地址:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR2/eclipse-cpp-galileo-SR2-win32.zip2、MinGW 下载安装下载地址:http://sourceforge.net/projects/mingw/files/运行mingw-get-inst-20120426.exe 文件,然后一直next,路径默认安装到 阅读全文
posted @ 2013-02-03 11:40 为了生活,加油 阅读(301) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7