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