01 综述.txt

UP 返回
1. 相关概念
  jdk包含jre,jre包含jvm

2. jvm监控方式:
  2.1 生成堆快照
	运行代码时,选择run时选择run configurations,在VM arguments中输入
		-XX:+HeapDumpOnOutOfMemoryError			▶也可以额外加上 -Xms20m -Xmx20m 来减小内存分配,提前发生溢出
	即可在发生堆溢出时生成快照文件,在项目src目录同级下有一个.hprof文件
	下载eclipse memory analyzer,即可打开该文件(点击file→Open Heap Dump→选择文件)。点击dominator_tree可以加载堆内存树,通过percent列可以看到各个对象所占内存的百分比
	其中shallow Heap列表示对象本身所占用的内存大小(不包含引用对象),retained Heap表示当前对象大小+当前对象直接或间接引用对象的大小,也就是对其进行垃圾回收可释放的内存大小
	点击对应行即可看到实际的object对应的类
  2.2 JVM监控工具
	jdk/bin目录下的jconsole.exe,这个软件只是一个包装,实际的代码在lib目录下的tools.jar

3.各种虚拟机
  Sun Classic VM 	第一款商用java虚拟机,只能使用纯解释器的方式执行java代码  jdk1.1
  Exact VM  			Exact Memery Management 准确式内存管理 jdk1.2
  HotSpot VM			称霸
  KVM (Kilobyte)		简单轻量高度可移植,运行速度慢。在手机平台运行
  JRockit				很快
  J9
  Azul VM				超高性能,基于Hotspot改进。
  Liquid VM			超高性能,不需要操作系统支持,本身就实现了系统的一些必要功能,所以性能很强
  Dalvik VM
  Microsoft JVM		微软开发
  TaobaoVM			高度定制化,只在淘宝服务器上运行快
DOWN 返回