随笔分类 -  JVM

摘要:java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=25 -jar myboot.jar 或者 java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n 阅读全文
posted @ 2019-03-18 17:59 暗夜飞羽睿 阅读(548) 评论(0) 推荐(0)
摘要:aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 iconst_1 将int类型常量1压入栈 iconst_2 将int类型常量2压入栈 iconst_3 将int类型常量3压入栈 iconst_4 将int 阅读全文
posted @ 2019-01-24 11:01 暗夜飞羽睿 阅读(428) 评论(0) 推荐(0)
摘要:top -H -p [pid] 查看进程的线程情况。 ps -mp [pid] -o THREAD,tid,time | sort -rn 查看线程情况 printf "%x\n" tid // 十六进制 jstack [pid] |grep [tid] -A 30 jstack -l [pid] 阅读全文
posted @ 2018-08-07 11:15 暗夜飞羽睿 阅读(220) 评论(0) 推荐(0)
摘要:jmap dump:file=[文件名].dump [进程号] 生成dump root@VM-185-251-ubuntu:/opt/scripts# jmap -dump:file=three.dump 9597 Dumping heap to /opt/scripts/three.dump .. 阅读全文
posted @ 2018-08-05 02:41 暗夜飞羽睿 阅读(156) 评论(0) 推荐(0)
摘要:先上点基础概念 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:w 阅读全文
posted @ 2018-05-22 13:36 暗夜飞羽睿 阅读(26013) 评论(0) 推荐(0)
摘要:原文链接 现在多核CPU是主流。利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于Java程序,可以实现并发垃圾收集。但是Java利用多核技术也带来了一些问题,主要是多线程共享内存引起了。目前内存和CPU之间的带宽是一个主要瓶颈,每个核可以独享一部分高速缓存,可以提高性能。JVM是利用操作系统的 阅读全文
posted @ 2018-04-19 10:48 暗夜飞羽睿 阅读(723) 评论(0) 推荐(0)
摘要:对于有图形化界面的用户来,jconsole就可以搞定,界面使用很简单 还可以查看很多信息,例如检测死锁。 下面是没有图形化界面的系统 可以用命令 : jps 查看jvm 进程 jstack -l 6088 查看 jvm 启动参数的命令 root@VM-185-251-ubuntu:/home/ubu 阅读全文
posted @ 2018-03-14 15:30 暗夜飞羽睿 阅读(444) 评论(0) 推荐(0)
摘要:一、为什么要使用类加载器?Java语言里,类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。例如:1.编写一个面向接口的应用程序,可能等到运行时再指定其实现的子类;2.用户可以自定义一个类加载器,让程序在运行时从网络或其他地方加载 阅读全文
posted @ 2018-02-09 16:09 暗夜飞羽睿 阅读(185) 评论(0) 推荐(0)
摘要:类加载机制的第一个阶段加载做的工作有: 1、通过一个类的全限定名(包名与类名)来获取定义此类的二进制字节流(Class文件)。而获取的方式,可以通过jar包、war包、网络中获取、JSP文件生成等方式。 2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。这里只是转化了数据结构,并未合 阅读全文
posted @ 2018-02-09 15:13 暗夜飞羽睿 阅读(220) 评论(0) 推荐(0)