Awesome JVM 
A curated list of awesome JVM low level, performance and
non-framework related stuff.
Bytecode
Tools for bytecode manipulation and analysis.
- asmtools
- Used to develop tools for the production of Java .class files.
- Byte Buddy - Code generation
library creating Java classes at runtime without the help of a
compiler.
- Jitescript -
Bytecode generation library similar to BiteScript.
Garbage collectors
Garbage collectors for the JVM.
- Azul
Pauseless Garbage Collection - Providing continuous, pauseless
operation for Java applications.
- Balanced
GC - GC policy available in the Java Virtual Machine for IBM
WebSphere Application Server V8.
- Epsilon GC -
Completely passive GC implementation with bounded allocation limit, and
lowest runtime performance overhead possible.
- G1
- The Garbage-First Garbage Collector.
- Shenandoah -
Ultra-Low-Pause-Time Garbage Collector.
- The Garbage Collection Handbook
- Book that addresses new challenges to garbage collection made by
recent advances in hardware and software.
- ZGC
- Garbage collector optimized for low latency and very large heaps.
Tools that generate load and measure the system accurately
without coordinated omission
- Gatling - Asynchronous non-blocking
scenario driven load testing tool for testing HTTP servers.
- wrk2 - A constant
throughput, correct latency recording variant of wrk.
Languages
Languages running on the JVM. * Ceylon - Object-oriented, strong and
static programming language with an emphasis on immutability, created by
Red Hat. * Clojure - Dialect of Lisp
created by Rich Hickey. Dynamically typed with emphasis on functional
programming. * Erjang - A JVM-based
Erlang VM. * Eta - Pure, lazy,
strongly typed functional programming language on the JVM. * Frege - Pure functional
programming language in the spirit of Haskell. * gojava - Java bindings for
Go packages. * Golo - A simple
dynamic language that makes extensive usage of
invokedynamic. * Groovy - Optionally typed and
dynamic language, with static-typing and static compilation
capabilities. * Java
- General-purpose, concurrent, strongly typed, class-based
object-oriented language. * JRuby -
Implementation of the Ruby language on the JVM. * JPHP - PHP on the Java VM.
* Jython - Python for the Java
Platform. * Kawa -
Extension of the Scheme language, which is in the Lisp family of
programming languages. * Kotlin -
Statically typed programming language for the JVM, Android and the
browser. * LuaJ -
Java-centric implementation of lua vm built to leverage standard Java
features. * Nashorn -
Lightweight high-performance JavaScript runtime in Java with a native
JVM. * OCaml-Java - Supports
OCaml language v4. Generates plain Java bytecode and have seamless
integration with Java. * Rembulan - Rembulan is
an implementation of Lua 5.3 for the JVM, written in pure Java with
minimal dependencies. * Renjin -
JVM-based interpreter for the R language for the statistical analysis *
Scala - Strong and static
programming language that combine object-oriented and functional
programming ideas. * Xtend -
Flexible and expressive dialect of Java, which compiles into Java 5
source code.
Machine Learning
- Deeplearning4j -
Open-Source, Distributed, Deep Learning Library for the JVM.
- H2O - Fast statistical, machine
learning & math runtime.
- Smile - Statistical
Machine Intelligence & Learning Engine.
Memory and concurrency
Tools and data structures for efficient memory layout and
concurrent access.
- Agera - Reactive
Programming for Android by Google.
- Agrona - Library
of data structures and utility methods that are a common need when
building high-performance applications.
- Apache Arrow - A
high-performance cross-system data layer for columnar in-memory
analytics.
- bloofi - Java
implementation of multidimensional Bloom filters
- Cap’n Proto - Insanely fast
data interchange format and capability-based RPC system.
- caffeine - A
high performance caching library for Java 8.
- Chronicle-Bytes -
Low level memory access wrappers.
- Chronicle-Queue -
Micro second messaging that stores everything to disk.
- Chronicle-Map
- In-memory key-value store designed for low-latency and/or
multi-process applications.
- clj-ds - Clojure’s
data structures modified for use outside of Clojure.
- colfer - Binary
serialization format and class generator.
- commons-math -
Library of lightweight, self-contained mathematics and statistics
components.
- CuckooFilter4J -
Bloom filter replacement for approximated set-membership queries.
- cyclops - Integration
modules for RxJava, Reactor, FunctionalJava, Guava & Javaslang.
- Eclipse
Collections - Collections framework for Java.
- externalsortinginjava
- Sort very large files using multiple cores and an external-memory
algorithm.
- failsafe - A
lightweight, zero-dependency library for handling failures.
- fasttuple -
Collections that are laid out adjacently in both on- and off-heap
memory.
- fast-uuid -
Java library for quickly and efficiently parsing and writing UUIDs.
- FlatBuffers -
Efficient cross platform serialization library for C++, C#, Go, Java,
JavaScript, PHP, and Python.
- geohash - Java
utility methods for geohashing.
- gs-collections
- Goldman Sachs collections framework.
- hollow - Java
library and comprehensive toolset for harnessing small to moderately
sized in-memory datasets.
- high-scale-lib -
Cliff Click’s High Scale Library.
- hppc - High
Performance Primitive Collections.
- injector - A
new Executor for Java.
- java-concurrent-hash-trie-map
- Java port of a concurrent trie hash map implementation from Scala
collections.
- java-hll -
Java library for the HyperLogLog algorithm.
- JavaFastPFOR -
Library to compress and uncompress arrays of integers very fast.
- java-string-similarity
- String similarity and distance measures, including Levenshtein edit
distance and sibblings, Jaro-Winkler, Longest Common Subsequence, cosine
similarity etc.
- JCTools - Concurrent
data structures currently missing from the JDK.
- DSL-JSON - High
performance JSON library with advanced compile-time databinding.
- jsoniter - Claims to be the
fastest JSON parser ever (copy of DSL-JSON).
- jOOL - Useful extensions
to Java 8 lambdas.
- Koloboke - Java
Collections til the last breadcrumb of memory and performance.
- LevelDB - Rewrite
(port) of LevelDB in Java.
- lightweight_trie
- A very memory-efficient trie (radix tree) implementation.
- lmdbjni - Java
API to LMDB (HawtJNI) which is an ultra-fast, ultra-compact key-value
embedded data store written in C.
- lmdbjava - Java
API to LMDB (JNR) which is an ultra-fast, ultra-compact key-value
embedded data store written in C.
- low-gc-membuffers
- In-memory circular buffers that use direct ByteBuffers to minimize GC
overhead.
- lwjgl3 - Java library
that enables cross-platform access to popular native APIs useful in the
development of graphics (OpenGL), audio (OpenAL) and parallel computing
(OpenCL) applications.
- MapDB - Collections backed by
off-heap or on-disk storage.
- mph-table -
Minimal Perfect Hash Tables are an immutable key/value store with
efficient space utilization and fast reads.
- mug - A small, zero-dep
functional util library originating from Google.
- netty-buffers
- Memory buffer pool implementation similar to jemalloc.
- ObjectLayout - A
layout-optimized Java data structure package.
- ohc - Java large off heap
cache developed for Apache Cassandra 3.0.
- okio - Modern Java IO
library that do clever things to save CPU and memory.
- onyx-java -
Mirrors the Onyx Platform core API by providing a Java equivalent for
each component of an Onyx workflow.
- parquet - Columnar storage
format that uses the record shredding and assembly algorithm described
in the Dremel paper.
- PauselessHashMap
- A java.util.HashMap compatible map that won’t stall puts or gets when
resizing.
- pcollections -
A Persistent Java Collections Library.
- protobuf -
Google’s data interchange format.
- Quasar -
Lightweight threads and actors for the JVM.
- rtree - Immutable
in-memory R-tree and R*-tree implementations in Java with reactive
api.
- RTree2D - RTree2D is
a 2D immutable R-tree with STR (Sort-Tile-Recursive) packing for
ultra-fast nearest and intersection queries on plane and spherical
surfaces.
- Reactive Streams -
Standard for asynchronous stream processing with non-blocking back
pressure.
- Reactive
Streams Utilities - Future standard utilities library for Reactive
Streams.
- RoaringBitmap
- A better compressed bitset in Java.
- rollinghashjava -
Rolling hash functions in Java.
- Reactor - Reactive data
applications on the JVM for Java, Groovy, Clojure and other.
- RxJava - Library
for composing asynchronous and event-based programs using observable
sequences.
- SmoothieMap -
java.util.Map impl with worst put latencies more than 100 times smaller
than java.util.HashMap.
- Simple
Binary Encoding - High Performance Message Codec.
- splitmap -
A parallel bitmap implementation.
- DataSketches - A Java
software library of stochastic streaming algorithms.
- stormpot - A
fast object pool for the JVM.
- stream-lib - A
Java library for summarizing data in streams for which it is infeasible
to store all events.
- streamvbyte -
Fast integer compression in C using the StreamVByte codec.
- TraneIO - High-performance
implementation of the Future abstraction.
- transducers-java
- Composable algorithmic transformations independent from the context of
their input and output sources.
- VarInt
- No-deps variable int implementation without deps (by Bazel).
- vavr - Functional Library for Java
8+.
- wire - Clean,
lightweight protocol buffers for Android and Java.
- Zero-Allocation-Hashing
- Hashing any sequences of bytes in Java, including all kinds of
primitive arrays, buffers, CharSequences and more.
Parsers, interpreters, compilers and source generation targeted
for the JVM.
- Antlr - Parser generator for
reading, processing, executing, or translating structured text or binary
files.
- auto - A collection of
source code generators for Java.
- Apache Calcite -
Dynamic data management framework and SQL parser plugin.
- Checker
Framework - Compiler plug-ins that find bugs or verify their
absence.
- compile-testing -
Testing tools for javac and annotation processors.
- derive4j -
Algebraic data types constructors, pattern-matching, morphisms, optics
and typeclasses.
- error-prone -
Catch common Java mistakes as compile-time errors.
- GHCVM - A Haskell
to JVM compiler that supports GHC Haskell.
- Graal - New
experimental just-in-time compiler for Java that is integrated with the
HotSpot virtual machine.
- grappa - Java fork of
Parboiled. Write grammars with no preprocessing phase.
- immutables - Generate
simple, safe and consistent value objects.
- javacc - Parser generator for
use with Java.
- javaparser -
Java 1.8 Parser and Abstract Syntax Tree for Java.
- JavaPoet - A Java
API for generating .java source files.
- jparsec - Builds
mini parsers in pure Java a la Haskell Parsec.
- JSweet - A transpiler from Java
to TypeScript/JavaScript.
- MPS - Design and build
extensible DSLs and editors.
- lombok - Reduce the amount
of boilerplate code that is commonly written for Java classes.
- parboiled -
Parsing of arbitrary input text based on parsing expression
grammars.
- Sulong - LLVM IR
interpreter written in Java using Truffle and Graal.
- TeaVM -
Ahead-of-time translating compiler (transpiler) from Java bytecode to
JavaScript.
- Truffle - Framework
for implementing languages as simple interpreters.
- Xtext - Framework for
development of programming languages and DSLs.
Native
Interconnecting JVM and native code
- hawtjni - A JNI
code generator based on the JNI generator used in Eclipse SWT.
- Java Grinder
- Compile Java bytecode to microcontroller assembly.
- j2v8 - Java API
for Google’s V8 JavaScript engine.
- JavaCPP - JavaCPP
provides efficient access to native C++ inside Java.
- jnr-ffi - Load native
libraries without writing JNI code by hand.
- jssembly - Execution
of native assembly from Java.
- NuProcess
- A low-overhead, non-blocking I/O, external Process execution
implementation for Java.
- Project
Panama - Enriching the connections between the JVM and APIs used by
C programmers.
Network
Tools for network programming, packet capture, monitoring,
testing and resiliency.
- Aeron - Efficient
reliable UDP unicast, UDP multicast, and IPC message transport.
- armeria - Asynchronous
RPC/API client/server library built on top of Java 8, Netty 4.1, HTTP/2,
and Thrift.
- Chronicle-Network
- A High Performance Network library.
- comcast -
Simulating shitty network connections.
- gor - HTTP traffic replay
in real-time.
- gRPC - A high performance, open
source, general RPC framework that puts mobile and HTTP/2 first.
- jRT - Measures
response time of a java application to socket-based requests.
- JXIO - Java API over
AccelIO (C library), a high-performance asynchronous reliable messaging
and RPC library optimized for hardware acceleration.
- K3PO - Create arbitrary
network traffic and behavior to certify whether a network endpoint
behaves correctly.
- muxy - Simulating
real-world distributed system failures.
- Netty - Async event-driven network
library for high performance protocol servers & clients.
- okhttp - An
HTTP+HTTP/2 client for Android and Java applications.
- one-nio -
library for building high performance Java servers.
- proteus-java -
Proteus Java Client based on RSocket.
- reactive-grpc -
Reactive gRPC is a suite of libraries for using gRPC with Reactive
Streams programming libraries.
- RSocket - RSocket is a binary
protocol for use on byte stream transports such as TCP, WebSockets, and
Aeron.
- SimianArmy -
Resiliency tool that helps ensure that your applications can tolerate
random instance failures.
- pcap4j - Java library
for capturing, crafting, and sending packets using libpcap.
- pig - A Linux
packet crafting tool.
- tcpdump - Packet analyzer for
network traffic capture.
- tcpflow - Captures
TCP connections flows in a way that is convenient for protocol analysis
and debugging.
- tcpreplay - Pcap
editing and replay tools.
Useful nix tools when profiling the JVM and interaction with
the host environment atoptool - Logging of system and
process activity for long-term analysis, highlighting overloaded system.
* bcc - Tools for BPF-based
Linux IO analysis, networking, monitoring, and more. * Flame Graphs -
Visualization of profiled software, allowing the most frequent
code-paths to be identified quickly and accurately. * ioping - Simple disk I/0
latency measuring tool. * javap
- Disassembles class files into code that reflects the java bytecode. *
jhat
- Java Heap Analysis Tool * jhsdb -
Launch a postmortem debugger to analyze the content of a core-dump from
a crashed JVM. * jinfo
- Prints configuration information for a given process. * jstack
- Prints stack traces of threads for a given Java process. * jstat
- Monitors GC and compiler statistics in the JVM. * hwloc - Reports the
structure of the processor, number of cores, hyperthreads and cache
size. * likwid - Read
hardware performance counters on Intel and AMD processors. * numactl - Control NUMA
policy for processes or shared memory. * oprofile - System-wide
hardware performance monitoring with easy-to-use interface at low
overhead. * perf - Linux
profiling with performance counters. * perf-tools -
Performance analysis tools based on Linux perf_events (aka perf) and
ftrace. * sysdig - Capture system
state and activity from a running Linux instance, then save, filter and
analyze. * sysstat -
Performance monitoring tools for Linux. * taskset/process-affinity
- Retrieve or set a processes’s CPU affinity. * tiptop - Like top but also
shows instructions per cycle (IPC).
Profilers
Tools that provide profiling and tracing information to aid
program optimization
- allocation-instrumenter
- Java agent that rewrites bytecode to instrument allocation sites.
- aprof - Java
memory allocation profiler.
- async-profiler
- Sampling CPU profiler for Java featuring AsyncGetCallTrace +
perf_events.
- BTrace - a safe,
dynamic tracing tool for the Java platform.
- Byteman - tracing,
monitoring and testing tool for Java
- bytestacks - Turn
JVM bytecode execution into flame graphs.
- Chronon - Record your entire
java program. Replay on any machine.
- GCeasy - Machine learning guided
Garbage collection log analysis tool. Auto-detect problems in the JVM GC
logs and recommend solutions to it.
- GCViewer -
GCViewer is a tool that visualizes verbose GC output.
- grav - A collection
of tools to help visualise process execution.
- hawkshaw - Tools
for tracking down memory / JVM problems & generating
predictable-as-possible VM behaviour.
- HdrHistogram - A
Histogram that supports recording and analyzing sampled data value
counts.
- hdrhistogram-metrics-reservoir
- A Metrics Reservoir implementation backed by HdrHistogram.
- HdrLogProcessing
- Utilities for HDR Histogram logs manipulation.
- heapster -
Production heap profiling for the JVM.
- honest-profiler
- Sampling JVM profiler without the safepoint sample bias.
- jamm - Measure actual
object memory use including JVM overhead.
- Java
Flight Recorder (JFR) - Tool for collecting diagnostic and profiling
data about a running Java application with almost no performance
overhead.
- java-sizeof -
Memory consumption estimator for Java.
- jcstress
- Experimental harness and tests to aid the research in the correctness
of concurrency support in the JVM, class libraries, and hardware.
- jfr-flame-graph
- Converting JFR Method Profiling Samples to FlameGraph compatible
format.
- jfr-report-tool -
Tool for creating reports from Java Flight Recorder dumps.
- jitwatch -
Log analyser / visualiser for Java HotSpot JIT compiler.
- jitwatch-intellij -
JITWatch plugin for IntelliJ IDEA.
- jHiccup - jHiccup is an
open source tool designed to measure the pauses and stalls associated
with an application’s underlying Java runtime platform.
- jmh -
Micro benchmarks written in Java and other languages targetting the
JVM.
- jmh-compare-gui -
GUI for comparing JMH results.
- JOL -
Analyze actual object layout schemes, footprint, and references in
JVMs.
- JProfiler
- Helps resolve performance bottlenecks, pin down memory leaks and
understand threading issues.
- JVMTI
- Provide a native API to inspect the state and to control the execution
of applications running in the JVM.
- jvmtop -
Lightweight console application to monitor running jvms on a machine in
top-like manner.
- jvm-profiler -
Java Agent to collect various metrics and stacktraces for Hadoop/Spark
JVM processes in a distributed way.
- MAT - Java heap analyzer that
help find memory leaks and reduce memory consumption.
- leakcanary - A
memory leak detection library for Android and Java.
- metrics - Measure the
behavior of critical components in production environment.
- micrometer -
An application metrics facade for the most popular monitoring
tools.
- osquery - osquery is an
instrumentation framework that expose the operating system as a
high-performance relational database.
- Overseer
- Low-Level Hardware Monitoring and Management for Java.
- OpenTracing - A vendor-neutral
open standard for distributed tracing.
- perf-map-agent -
Generate method mappings to use with the linux
perf
tool.
- perfj - Linux perf
for java programs.
- polarbear - A tool to
help diagnose OutOfMemoryError conditions.
- Riemann
JVM Profiler - JVM agent which sends function-level profiler
telemetry to a Riemann server for analysis, visualization, and
storage.
- statsd-jvm-profiler
- JVM agent profiler that sends profiling data to StatsD.
- Swiss Java Knife
- Small set of tools for JVM troublshooting, monitoring and
profiling.
- Takipi - Tells you when and
why code breaks in production.
- Tracer - Manages
custom trace identifiers and carries them through distributed
systems.
- YourKit - Fully featured,
easy to use, low overhead profiler.
- Zipkin - A
distributed tracing system gather timing data for disparate services
developed by Twitter.
Runtimes
Tools for managing jvm runtime processes * Capsule - Dead-Simple
Packaging and Deployment for JVM Apps. * CRaSH - The shell for the Java
Platform. * Drip - Fast
JVM launching without the hassle of persistent JVMs. * HotswapAgent
- Redefine classes at runtime and skip the redeploy process. * jvmkill - Agent that
forcibly terminates the JVM when it is unable to allocate memory or
create a thread. * Nailgun - Nailgun is a
client, protocol, and server for running Java programs from the command
line without incurring the JVM startup overhead.
Virtual Machines
Virtual machines that implement the JVM specification or parts of
it. * Avian -
Lightweight highly portable JVM with an option for AOT compilation. * Dalvik -
Android runtime (ART) is the managed runtime used by applications and
some system services on Android. * DCEVM - Modification of Java HotSwap
VM with unlimited support for reloading classes at runtime. * HotSpot - HotSpot
virtual machine maintained and distributed by Oracle Corporation. * IBM J9 - JVM
developed by IBM. * Eclipse
OpenJ9 - Eclipse OpenJ9. * J2ObjC - Translator from
Java source to Objective-C code. Keeps shared code between iOS native
apps and Android native apps. * jvm.go - A JVM written in Go.
* ParparVM
- An Open Source Java bytecode to C translator for iOS native
development. Designed as a part of the Codename One WORA for mobile
project. * MobiDevelop’s
RoboVM Fork - Ahead of time compiler for JVM bytecode targeting iOS,
Mac OSX and Linux. * Zing - The only JVM that
eliminates Java garbage collection pauses for large heap sizes. * Zulu - The only certified
multi-platform build of OpenJDK: Free, 100% open source Java.
Resources
Documentation
Documentation related to JVM * TCP
Tracepoints Linux bcc/BPF using tcplife by Brendan Gregg * Linux tracing
workshop - JVM monitoring with BPF, examples and hands-on labs for
Linux tracing tools workshops. * JVM Anatomy Park -
mini-post series where every post goes deep for only a single topic by
Aleksey Shipilёv. * Coordinated
Omission problem - Discussion on Mechanical Sympathy. * False
sharing - Threads impact the performance of each other while
modifying independent variables sharing the same cache line. Martin
Thompson. * The JVM
specification - The Java Virtual Machine Specification Java SE 8
Edition. * The
Java Memory Model - Starting point for discussions of and
information concerning the Java Memory Model. * The JSR-133
Cookbook for Compiler Writers - Unofficial guide to implementing the
new Java Memory Model (JMM) specified by JSR-133. * Garbage
Collection Tuning Guide - HotSpot Virtual Machine Garbage Collection
Tuning Guide. * Safepoints
- Where is my safepoint? Nitsan Wakart. * Topics
in High-Performance Messaging - Design decisions, experience and
constraints explained in high performance messaging systems. * Top 10
Performance Mistakes - Digest of the top 10 performance related
mistakes Martin Thompson has seen in production. * The USE method -
The Utilization Saturation and Errors (USE) Method is a methodology for
analyzing the performance of any system. Brendan Gregg. * An introduction to
distributed systems - Kyle Kingsbury (author of Jepsen). * Using JDK 9 Memory
Order Modes - For expert programmers familiar with Java concurrency,
but unfamiliar with the memory order modes available in JDK 9 provided
by VarHandles. * CPU
Utilization is Wrong - Measure instructions per cycle (IPC) for CPU
utilization. Brendan Gregg. * Linux
Load Averages: Solving the Mystery - Brendan Gregg. * What
every programmer should know about solid-state drives - Emmanuel
Goossaert. * Quick
Tips for Fast Code on the JVM - Daniel Spiewak. ## Communities
Active discussions.
Videos, podcasts and other media related to JVMs * FOSDEM 2018
- FOSDEM 2018 Free Java devroom. * JFokus
2018 - The GC edition. Shenandoah, ZGC, Zing, Fibers, Falcon etc. *
G1 Garbage
Collector in Java 8/9 - Kirk Pepperdine. * Extreme
Profiling: Digging Into Hotspots - Nitsan Wakart. * Java
vs. C Performance - Cliff Click. * Why JNI is slow?
- Cliff Click * A
Crash Course in Modern Hardware - Cliff Click * Java Profiling from
the Ground Up - Nitsan Wakart. * The Illusion of
Execution - Nitsan Wakart. * Mythbusting Modern
Hardware to Gain ‘Mechanical Sympathy’ - Martin Thompson. * Designing for
Performance - Martin Thompson. * How NOT to Measure
Latency - Gil Tene. * JVM Language
Summit 2015 - JVM Language Summit 2015. * JVM
Language Summit 2016 - JVM Language Summit 2016. * JVM
Language Summit 2017 - JVM Language Summit 2017. * Bits of advice for VM
writers - Cliff Click. * Understanding Java
garbage collection … - Gil Tene. * Faster Object
Arrays - Gil Tene at GOTO Conferences. * Java Memory Model
Pragmatics - Aleksey Shipilev. * With GC Solved, What
Else Makes a JVM Pause? - John Cuthbertson. * JVM Mechanics - Douglas Hawkins.
* Give me 15
minutes and I’ll change your view of Linux tracing - Brendan Gregg.
* Kernel
Recipes 2017: Performance Analysis with BPF - Brendan Gregg. * Shenandoah
deep talk - Aleksey Shipilëv slightly-deeper-than-usual Shenandoah
talk from Virtual Machine Meetup 2017. * Shenandoah: The
Garbage Collector That Could - Aleksey Shipilev - Devoxx 2017/11 *
Analyzing and
Debugging the Java HotSpot VM at the OS Level - Volker Simonis. * Cliff
Click podcast 2017/09/16 - Programming and Performance Intro. * Cliff
Click podcast 2017/09/16 - Bugs and Coding Styles. * Cliff
Click podcast 2017/09/18 - Java vs C/C++. * Cliff
Click podcast 2017/09/21 - Debugging Data Races. * Cliff
Click podcast 2017/09/24 - Fast Bytecodes for Funny Languages. * Cliff
Click podcast 2017/09/28 - Struct of Arrays vs Array of Structs. *
Cliff
Click podcast 2017/10/04 - The 3 Hardest Problems in Programming. *
Cliff
Click podcast 2017/11/05 - Modern Hardware Performance and Cache
Lines. * Cliff
Click podcast 2017/11/09 - Queuing In Practice. * Which
technique do programming language parsers and interpreters use? -
Cliff Click. * Everything about
Stack Traces and Heap Dumps - Andrei Pangin. * Fast and safe production
monitoring of JVM with BPF tools - Sasha Goldshtein. * The
Future of the Linux Page Cache - Matthew Wilcox.
People
People that share hard-earned, often undocumented, knowledge and
data of the inner workings of the JVM * Aleksey Shipilëv - Developing
Oracle/Open JDK/Hotspot and other Java-related technologies. * Andrey Breslav - Lead Language
Designer of Kotlin @ JetBrains. * Brian Goetz - Java Language
Architect at Oracle. * Ben
Christensen - Facebook, Netflix, Apple engineering. * Brendan Gregg - Cloud
performance, kernel engineer, speaker, author. * Charles Nutter - JRuby guy. * Claes Redestad - Working with
OpenJDK stuff @ Oracle. * Cliff
Click - Creator of the HotSpot Server Compiler. * Dave Dice - Senior research
scientist in the Scalable Synchronization Research Group within Oracle.
* Dávid Karnok - RxJava
committer that blogs about advanced RxJava. * Doug Lea - Author of the Java memory
model. * Gil Tene - Azul
Systems. * Heinz Kabutz -
Author of 250+ Java Specialists’ Newsletters. * Ivan Krylov - JVM expert. * Jake Wharton - Square,
Google, open source hacker. * John Rose - HotSpot
developer. * Jonas Bonér -
Founder & CTO of Lightbend. * Lukas Eder - Blogger. Author of
JOOQ. * Marcus Lagergren -
Java language team alumnus. * Mark Reinhold - Chief
Architect, Java Platform Group, Oracle. * Martin Thompson -
Pasty faced performance gangster. * Martijn Verburg - Java Champion.
* Kirk Pepperdine -
Working in high performance and distributed computing for nearly 20
years. * Nitsan
Wakart - Azul Systems. * Norman Maurer - Netty
developer. * Paul
Phillips - Forever undisputed SLOC Scala compiler dev. * Per Liden - Hacking on the
HotSpot JVM at Oracle. * Peter
Lawrey - Innovative developer of high performance Java systems for
competitive advantage. * Rafael Winterhalter - Author
of ByteBuddy. * Richard
Warburton - Developer, Speaker, Author. * Richard Startin - Performance
Analyst, developer, blogger. * Ron Pressler - Parallel
Universe. Leading Fibers and Continuations for the JVM. * Stephen Colebourne - Java
Champion. Occasional blogger and speaker. Best known for Joda projects
and JSR-310. * Todd L.
Montgomery - Ex-CTO, Ex-NASA researcher, network geek, messaging
middleware designer. * Stéphane
Maldini - Project Reactor Lead @Pivotal. * Stuart Marks - Doctor
Deprecator. Java/JDK/OpenJDK developer * Vladimir Ivanov - hacking
HotSpot JVM @ Oracle. * Viktor
Klang - Deputy CTO at Typesafe Inc.
Contributing
Contributions are very welcome!
Please have a look at contributing.md
for guidelines.
jvm.md
Github