#openjdk #mystery #hotspot
#jokerconf #jugru
$ jstat -gccause [...]
Timestamp LGCC GCC
1.6 Last ditch collection No GC
1.7 No GC Last ditch collection
1.8 No GC Last ditch collection
1.9 No GC Last ditch collection
2.0 No GC Last ditch collection
hotspot/src/
├── cpu # CPU specific
│ └── [x86, sparc, ...]
├── os # OS specific
│ └── [bsd, linux, windows, ...]
├── os_cpu # OS and CPU specific
│ └── [bsd_zero, linux_sparc, windows_x86, ...]
└── share
├── tools # Stuff you probably won't need
└── vm # Most of the interesting stuff
hotspot/src/share/vm
├── c1 # Client compiler
├── classfile # Class loading, verification, representation, ...
├── code # Machine code management
├── compiler # Things common for the compilers
├── gc_* # Garbage Collection
├── interpreter # Interpreter for experiments
├── memory # Base stuff for memory, also the Universe lives here
├── oops # Ordinary Object PointerS
├── opto # Server compiler
├── prims # Unsafe, JNI, JVMTI, lots of stuff
├── runtime # VM runtime, threading, perf data, LOTS of stuff
└── [...]
grep
, Luke!grep -r
grep -C 3
grep -n
jdk9/common/nb_native/nbproject/
$ hg grep -f --all '::_no_gc'
[...]
vmGCOperations.cpp:2097:+: assert(((_gc_cause != GCCause::_no_gc)
$ hg log --rev 2097
[...]
summary: 7015169: GC Cause not always set
$ hg log --rev "last(::2097 and tagged(), 10)"
[...]
changeset: 1993:102466e70deb
tag: jdk7-b127
[...]
Не путать: b127
и u127
— не одно и то же
$ java -version
java version "1.7.0_51" # update 51
Java(TM) SE Runtime Environment (build 1.7.0_51-b13) # build 13
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
У Hotspot своя версия и свои сборки. Лучше смотреть на теги.