随笔分类 - jvm
摘要:排查线程信息的常用工具是jstack,jstack用于生成当前进程的所有线程快照。 准备 设计一个程序:两个线程,两个锁,互相等待造成死锁。 然后使用jstack排查锁竞争情况。 jstack使用 一般出现cpu异常的情况下,会使用top命令找到cpu占用较高的进程,得到进程pid。 如果定位到或怀
阅读全文
摘要:JVM生命周期 此处的VM为HotSpot VM。 JVM的启动方式 启动HotSpot VM的组件是启动器。HotSpot VM有多个启动器,常见的启动器如下: Unix/linux 上最常见的是java; windows上是java和javaw; 通过JNI接口JNI_CreateJavaVM启
阅读全文
摘要:先使用命令查看docker的运行进程 [root@localhost logs]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2e18082d1675 docker.baiwang-inner.com/genera
阅读全文
摘要:类加载的机制的层次结构 每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的
阅读全文
摘要:JVM实用参数(一)JVM类型以及编译器模式 http://ifeve.com/useful-jvm-flags-part-1-jvm-types-and-compiler-modes-2/ JVM实用参数(二)参数分类和即时(JIT)编译器诊断 http://ifeve.com/useful-jv
阅读全文
摘要:先来一段能够内存溢出的程序 设置jvm参数保留堆栈信息 jdk的bin目录下有许多工具 /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin 找到jvisualvm,双击打开
阅读全文
摘要:什么是逃逸? 逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到;这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量引用。正常的方法调用中,方法体中创建的对象将在执行完毕之后,将回收其中创建的对象;故由于无法回收,即成
阅读全文
摘要:官方文档:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html GC相关 1. 行为参数 选项和默认值 值描述 -XX:-AllowUserSignalHandlers 允许用户在应用中捕捉信号 (只
阅读全文
摘要:OQL是对java堆内存进行查询分析 使用方法: 1.查看java线程id 上图红框中的为pid; 2.运行命令-导出堆内存信息-会生成一份文件在你本地 3.解析该文件-会展示为html 4.在浏览器打开地址 http://127.0.0.1:7000 主页面 http://127.0.0.1:70
阅读全文
摘要:JPS 虚拟机进程状况工具 常用的参数: -l 输出Java应用程序的main class的完整包 -q 仅显示pid,不显示其它任何相关信息 -m 输出传递给main方法的参数 -v 输出传递给JVM的参数。在诊断JVM相关问题的时候,这个参数可以查看JVM相关参数的设置 注:这个命令相信大多数j
阅读全文
摘要:1.jvm有三种执行模式,分别是解释执行,混合执行和编译执行,默认情况是混合执行模式。 编译执行的执行效率远远高于解释执行; 启用编译执行模式: 解释执行模式: java version "9" Java(TM) SE Runtime Environment (build 9+181) Java H
阅读全文
摘要:内存溢出: 操作系统可提供给所有进程的存储空间正在被某个进程榨干,耗尽内存没找成整个系统崩溃; 内存溢出会抛异常:Java.lang.OutOfMemoryError 演示代码: 输出: Exception in thread "main" Java.lang.OutOfMemoryError: G
阅读全文
摘要:IntelliJ IDEA 配置参数:-Xms34m -Xmx234m 内存初始化大小,最小和最大值; 测试代码: 配置参数后运行结果: memory info : 32M/34M(free/total) 默认运行结果: memory info : 254M/256M(free/total)
阅读全文
摘要:现在的JVM运行Java程序(和其它的兼容性语言)时在高效性和稳定性方面做的非常出色。自适应内存管理、垃圾收集、及时编译、动态类加载、锁优化——这里仅仅列举了某些场景下会发生的神奇的事情,但他们几乎不会直接与普通的程序员相关。在运行时,JVM会不断的计算并优化应用或者应用的某些部分。 虽然有了这种程
阅读全文
摘要:ssh 连接服务器 ssh user@www.xxx.com -p60022 用户名@ip 端口 进入日志所在目录 cat FILENAME 查看文本文件,P.S. 在查较大文件时为了避免刷屏,请使用 cat FILENAME | more 或 more FILENAME zcat FILENAME
阅读全文
摘要:jinfo:可以输出并修改运行时的java 进程的opts。 jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。 jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。 jmap:打印出某个
阅读全文