jvm学习笔录
文章平均质量分 90
莫然
梦想还是要有的,万一实现了呢
展开
-
一、 jvm运行机制
1、JVM的启动流程 一个JAVA类运行,装载配置会根据当前路径找JVM.CFG。在配置文件中找到执行文件jvm.dll。然后初始化jvm获得JNIEny接口,该接口会找相应的类运行main方法。 2、执行基本结构 l PC寄存器在线程创建时创建,每个线程都拥有一个寄存器 l 方法区保存装载类的信息(类型的常量池、字段、方法、方法字节码)和Perm永久区关联原创 2016-07-14 00:31:24 · 454 阅读 · 0 评论 -
二、 JVM参数调试
2.1、Trace跟踪参数 n -verbose:gc -XX:+printGC 在运行的时候打印gc的简单信息 如: [GC 4790K->374K(15872K), 0.0001606 secs] [GC 4790K->374K(15872K), 0.0001474 secs] [GC 4790K->374K(15872K), 0.0001563 secs] [GC 4790K-原创 2016-07-14 00:33:20 · 409 阅读 · 0 评论 -
三、 GC算法
GarbageCollection 垃圾收集,GC的对象是堆空间和永久区 GC算法 – 引用计数法 – 标记清除 – 标记压缩 – 复制算法 3.1、引用计算法 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,则对象A就不可能原创 2016-07-14 00:37:09 · 357 阅读 · 0 评论 -
四、 监控分析
4.1、系统监控 4.1.1、Linux监控工具 1)、uptime 可查看系统时间、运行时间、用户连接数、系统平均负载 2)top 可查看程序所占cpu 3)vmstat 可以统计系统的CPU,内存,swap,io等情况 4) pidstat 可以更详细观察进程、监控cpu、io、内存 4.1.2、window监控工具 1)任务管理器 2)Perf原创 2016-07-14 00:39:00 · 628 阅读 · 0 评论 -
五、 锁应用
5.1、线程安全 多线程访问ArrayList。 代码: publicstatic List numberList =new ArrayList(); publicstatic class AddToList implements Runnable{ int startnum=0; public AddToList(int startnumber){原创 2016-07-14 00:39:43 · 341 阅读 · 0 评论