JVM 标签
怎样使用jmap查看jvm存活对象: jmap -histo pid & jmap -histo:live pid 有更新!
如果想查看当前堆中的所有对象的top值. 使用如下命令: jmap -histo pid | head -n 50
;这个命令会直接打印出堆中"存活"的前50个对象(实际对象可能已经dead,只是一直没有进行fullgc).
如果想只看存活的对象, 那可以使用命令: jmap -histo:live pid | head -n 50
;这个命令在打印前会做一次FUllGC然后再打印出真实的存活对象.
OpenJDK8 Java程序启动解析(上) - Java程序是怎样执行到main方法的 置顶! 有更新!
上篇主要简单分析一下JavaLauncher的启动过程,以及怎样执行到我们的Java main方法的.
OpenJDK8 编译构建基础设施详解(3) - java命令是怎么编译出来的 置顶! 有更新!
如果你有疑问Java命令是怎么编译出来的, 由哪些源文件编译而来. 那这篇文章正好能解答你的疑问.
您也可以在知乎阅读此文:知乎专栏-跟我一起阅读OpenJDK源
OpenJDK8 编译构建基础设施详解(1) - A New OpenJDK Build-Infra Detail With GNU MAKE And AutoConf 置顶! 有更新!
此篇文章分析下OpenJDK的编译构建基础设施 ,基于OpenJDK 版本 jdk8u
您也可以在知乎阅读此文: https://zhuanlan.zhihu.com/p/518013598
说说OpenJDK8中main函数引用的FULL_VERSION在哪定义 有更新!
刚开始看
openJDK
的源码的时候,准备调试第一个HelloWorld就被难在这里了.
如截图中的这个FULL_VERSION
是在哪定义的,找了半天也没有找到. 但是调试的时候它就是有值的. 今天就来看看这个值到底是怎么声明的.
基于Mac OS Bigsur 编译OpenJDK8 有更新!
环境介绍:
操作系统: Mac OS BigSur , Version 11.6.5
xcode: https://download.developer.apple.com/Developer_Tools/Xcode_12.5.1/Xcode_12.5.1.xipXcode 12.5.1 Build version 12E507
BootJDK 版本: jdk-7u80-macosx-x64
OpenJDK版本: openjdk jdk8u jdk8u
Make 版本: GNU Make 3.81
GNU Makefile eval 函数用法 及 OpenJDK中MakeHelpers.gmk辅助函数定义解析 有更新!
解析makefile中的eval的基本用法. 最后对 MakeHelpers.gmk 中定义的辅助函数的原理进行简单说明.
GNU Make 功能说明及语法拾遗 - ifeq 和 函数参数中空格杂谈 有更新!
makefile
是个古老又难以回避的技术. 同shell一样,其中一些语法特别古怪又难以琢磨. 这里GNU Make
的一些语法进行拾遗补充说明.
JVM Launcher Main 解析 有更新!
GDB 调试技巧备忘 有更新!
初一看, GDB调试是真的难用. 简单说是功能很原始. 很多东西调试起来不是特别的方便. 然后
Clion
提供的调试功能也极其原始. 因此最终还是要把GBD
用好才能完成JVM
的调试学习.
Linux x86 程序启动-怎么执行到main方法 - Linux x86 Program Start Up or-How the heck do we get to main [翻译][注解版] 有更新!
译文
原标题: Linux x86 Program Start Up or - How the heck do we get to main()? by Patrick Horgan
摘要:
整篇文章大意就是要给我们介绍在main函数执行前要做什么.或者说main方法整体在程序的运行流程中.处于哪一个环节.
然后主体的串流程是在函数:__libc_start_main
因为这个是gcc, 编译的有可能是cpp文件. 另外即使是c语言.
也有可能的一些全局的construct
函数和deconstruct
函数.
你也可以在知乎阅读此文: https://zhuanlan.zhihu.com/p/521205296
使用GCC实现一个没有main方法的程序. 有更新!
常识中main方法是万物的开始. 真的是这样的吗.
内存泄露案例1: Eclipse MAT&IBM HeapAnalyzer-由于错使用循环变量导致WHILE死循环的OOM 有更新!
本文介绍了一次测试环境的开发过程的OOM问题排查,期间使用到了内存dump分析工具: Eclipse MAT和IBM HeapAnalyzer 两种分析工具.
最终结合代码找到了具体问题代码. 此文章会涉及到dump内存的基本分析. 以及分析内存泄漏的过程.在分析完并定位到内存泄露后,定位到代码. 反过来再复盘之前的过程. 实际上也可以不用使用内存Dump这个终极工具. 也可以比较方便的
定位内存泄露的地方. 更多的可能是需要更详细的分析代码.(也就是要对源代码更熟悉一些)
Hotspot调试环境搭建-基于Ubuntu16.04.7-OpenJDK8u-Clion 有更新!
本文简单记录一下自己搭建HotSpot调试环境的步骤,希望对初学者有所帮助.
深入学习JVM之Class文件二进制解析 有更新!
JVM调优之预热和JIT优化
这是一篇没有太明确结论的文摘. 大概会记录些服务调优的过程与相关的细节. 然后所做过的尝试.
记于此,是为方便大家有共同的问题时方便查阅参考.