jvm学习笔录
文章平均质量分 90
莫然
梦想还是要有的,万一实现了呢
展开
-
一、 jvm运行机制
1、JVM的启动流程一个JAVA类运行,装载配置会根据当前路径找JVM.CFG。在配置文件中找到执行文件jvm.dll。然后初始化jvm获得JNIEny接口,该接口会找相应的类运行main方法。2、执行基本结构l PC寄存器在线程创建时创建,每个线程都拥有一个寄存器l 方法区保存装载类的信息(类型的常量池、字段、方法、方法字节码)和Perm永久区关联原创 2016-07-14 00:31:24 · 455 阅读 · 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 · 359 阅读 · 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 评论