------------JVM
文章平均质量分 65
女汉纸一枚
丢弃对未来的怯懦,保持对未来的执着。
展开
-
【JVM】JVM基础
程序计数器 PC Register:JVM支持多线程同时执行,每一个线程都有自己的PC Register,线程正在执行的方法叫做当前方法,如果是Java代码,PC Register里面存放的就是当前正在执行的指令的地址,如果是C代码,则为空。 虚拟机栈JVM Stacks:Java虚拟机栈是线程私有的,它的生命周期与线程相同。虚拟机描述的是Java方法执行的内存模型:每个方法在执行的同时都会...原创 2018-08-18 17:57:35 · 205 阅读 · 0 评论 -
【JVM】基于BTrace的监控调试
BTrace简介 BTrace可以动态地向目标应用程序的字节码注入追踪代码 JavaComplierApi、JVMTI、Agent、Instrumentation+ASM BTrace安装入门 本机安装 新建环境变量BTRACE_HOME 添加Path:%BTRACE_HOME%\bin 插件安装 BTrace使用详解 编写脚本需要用到的依赖 ......原创 2018-08-18 15:41:46 · 1009 阅读 · 1 评论 -
【JVM】JVisualVM可视化监控
各版本插件中心: https://visualvm.github.io/pluginscenters.html 根据自己JDK的版本选择合适的插件中心 安装常用插件: 工具——插件 本人安装了两个常用插件 监控本地Tomcat 监控远程Tomcat 添加远程主机 修改远程tomcat配置 [root@localhost bin]# vi catalina.s...原创 2018-08-18 14:40:54 · 542 阅读 · 1 评论 -
【JVM】Jconsole、Jvisualvm检测死锁
查看java进程 jps -l 打开Jconsole工具,连接指定的Java进程 点击如下死锁原创 2018-08-18 11:11:42 · 677 阅读 · 1 评论 -
【JVM】Jstack实战死循环与死锁
死锁检测 # 查看Java PID(进程号) [root@localhost ~]# jps -l # 控制台输出线程的dump信息 [root@localhost tomcat]# jstack PID [root@localhost tomcat]# jstack Usage: jstack [-l] <pid> (to connect to ...原创 2018-08-18 10:53:07 · 2445 阅读 · 2 评论 -
【JVM】Jmap+MAT实战内存溢出
导出内存映像文件 #第一种:内存溢出自动导出 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./ #第二种:使用jmap命令手动导出 [root@localhost ~]# jmap -dump:format=b,file=heap.hprof 1092 Dumping heap to /root/heap.hprof ... Heap d...原创 2018-08-18 08:30:48 · 958 阅读 · 1 评论 -
【JVM】基于JDK命令行监控
JVM参数类型 标准参数 # 此类参数相对比较稳定 -help -server -client #指定JVM的类型 -version #就是查看当前机器的java是什么版本,是什么类型的JVM(Server/Client),采用的是什么执行模式。 -showversion #运行一个程序的时候首先把JVM的版本信息打印出来,这样便于问题诊断。个人建议Server类型的程序都把这个选项...原创 2018-08-16 20:24:34 · 446 阅读 · 0 评论 -
【JVM】基础
1、对象为什么放到堆里面? 对象放到堆里面,可以实现多个对象共享。可能会引起一些安全问题 2、栈是运行时的单位和线程绑定,堆是存储的单位。局部变量没有线程安全问题,因为它不是共享的。 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是数据存储的问题,即数据怎么放,放在哪儿。Java中一个线程就会相应有一个线程与之对应,这点很容易理解,因为不同的线程执行逻辑有所不同,...原创 2018-06-03 18:59:25 · 195 阅读 · 2 评论