Yo! I am preparing a new talk, to be first presented at the upcoming Joker Conference
in Saint Petersburg, Russia. With it, I intend to make everyone capable of digging deep into
HotSpot to get to the bottom of their issues.
This blog entry is a teaser which examines a sample problem encountered by Nikita of
What does GC cause _no_gc mean? and _last_ditch_collection too.
#JVM /cc @shipilev ?
There are many sources where you can get an idea of what JMM is about, but most of them still leave you with lots of
unanswered questions. How does that happens-before thing work? Does using volatile result in
caches being dropped? Why do we even need a memory model in the first place?
This article is intended to give the readers a level of understanding which allows them to answer all of these questions.
It will consist of two large parts; the first of them being a hardware-level outline of what's happening,
and the second is indulging in some digging around OpenJDK sources and experimenting. Thus, even if you're not exactly
into Java, the first part might still be of interest to you.