HotSpot source: classloading
In the past, I wrote about Java class loading in these entries:
Now, if you have downloaded JDK source from http://jdk6.dev.java.net and you want to understand classloading in HotSpot JVM, you may want to look at these files:
- $JDK/src/share/vm/runtime/classFileParser.hpp (and .cpp)
- $JDK/src/share/vm/runtime/classFileStream.hpp (and .cpp)
- $JDK/src/share/vm/memory/classLoader.hpp (and .cpp)
- $JDK/src/share/vm/memory/systemDictionary.hpp (and .cpp)
- $JDK/src/share/vm/memory/loaderConstraints.hpp (and .cpp)
- $JDK/src/share/vm/oops/InstanceKlass.hpp (and .cpp) - in particular
bool instanceKlass::link_class_impl
method
You may want to refer to Dynamic Class Loading in the Java Virtual Machine as well. A good to way to learn classloading is to trace JVM using DTrace on Solaris OS. There is a hotspot::class-loaded probe. For example, on class-loaded probes, you may call jstack action to print stack trace whenever a java class is loaded (or unloaded). If you are reading (and planning to hack!) HotSpot sources, you may want to try these as well:
- HotSpot is a C++ program. You can try what is described in "Using DTrace to Profile and Debug A C++ Program"
- Insert your own USDT probes in HotSpot source and recompile! [refer: User-land tracing gets better and better]
Note that aforementioned DTrace tricks can be used to trace any subsystem of HotSpot - not neccesarily classloading!
A. Sundararajan's Weblog
A. Sundararajan's Weblog -- sundararajan
分享到:
相关推荐
深入拆解一线大厂JVM 讲师:宋红康v1.1.mmap
一个文档让你读懂什么事java虚拟机,让你的编程生涯更加的透彻!
JVM面试资料。 JVM结构:类加载器,执行引擎,本地方法接口,本地内存结构; 四大垃圾回收算法:复制算法、标记-清除算法、标记-整理算法、分代收集算法 七大垃圾回收器:Serial、Serial Old、ParNew、CMS、Parallel...
JVM详解:带书签超清文字版.pdf 这个是有完整目录书签的,文本内容可以复制。
有关JVM的基础教程。介绍JVM原理:hotspot、classfile、classloader、内存模型、锁、同步、JVM内存管理和垃圾收集。
[jvm]深入JVM(一):从"abc"=="abc"看java的连接过程收藏 一般说来,我不关注java底层的东西,这次是一个朋友问到了,注意不光是 System.out.println("abc"=="abc");返回true, System.out.println(("a"+"b"+"c")....
深入理解JVM内幕 从基本结构到Java 7新特性
OpenJDK
JVM下篇:性能监控与调优篇
虚拟机 Java线程 高 CPU 使用率 如何使用 CustomizedTools 分析 Java 线程转储? 从克隆定制工具 根据 CustomizedTools root How to Build docs 构建 CustomizedTools 导航到dist (生成生成),执行: ...
Java虚拟机实质原理知识总结这里仅仅记录了一些笔者认为需要重点掌握的JVM知识点,如果你想更全面地了解JVM逐步原理,可以阅读周志明老师《深入理解Java虚拟机——JVM高级特性与最佳实践(第2/3版)》全书。...
• HotSpot • ClassFile • ClassLoader • 内存模型、锁、同步 • JVM内存管理和垃圾收集 Java发展历程 JVM列表 OpenJDK 编译执行过程 解析执行和JIT编译
java JWM 源码 ,版本jdk1.8 。java JVM 源码,版本 jdk 1.8。java JWM 源码 ,版本jdk1.8 。java JWM 源码 ,版本jdk1.8 。java JWM 源码 ,版本jdk1.8 。
JVM下篇:性能监控与调优篇.7z
Java虚拟机JVM:lib_j2re_test.rar
JVM视频: https://www.bilibili.com/video/av44880257/
JVM: java虚拟机 一:上篇——内存与垃圾回收器 二:中篇——字节码与类的加载 三:下篇——性能监控与调优篇 一: 上篇——内存与垃圾回收器 架构: jvm依赖的架构: 栈架构/寄存器架构 栈架构 JVM的生命周期: 1....
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:jwgl' did not find a matching property. 3月 17, 2019 10:51:41 上午 org.apache....
代码如下:failed to create jvm error code -4 这一般应是内存不够用所致,解决方法参考如下。 打开 Android Studio 安装目录下的bin目录,查找并打开文件 studio.exe.vmoptions,修改代码: 代码如下:-Xmx512m 为...
今天开机发布程序,启动项目,竟然报错说8080端口被占用,没关系 只要是把占用这个端口的进程杀掉即可