JVM
Bytecode
3_ENTRIESTools 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
7_ENTRIESGarbage 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.
Load tools
2_ENTRIESTools that generate load and measure the system accurately without coordinated omission
Languages
21_ENTRIESLanguages 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
3_ENTRIES- 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
75_ENTRIESTools 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.
Metaprogramming
23_ENTRIESParsers, 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
8_ENTRIESInterconnecting 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
22_ENTRIESTools 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.
Nix tools
20_ENTRIES*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
49_ENTRIESTools 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
perftool. - 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
6_ENTRIESTools 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
12_ENTRIESVirtual 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.
Documentation
19_ENTRIESDocumentation 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
7_ENTRIESActive discussions.
- concurrency-interest
Discussion list for JSR-166.
- hotspot-compiler-dev
Technical discussion about the development of the HotSpot bytecode compilers.
- hotspot-dev
HotSpot development mailing list.
- hotspot-gc-dev
Technical discussion about the development of the HotSpot garbage collectors.
- mechanical-sympathy
Discussing how to code sympathetically to and measure the underlying stack/platform so good performance can be extracted.
- Performance Java User's Group
For expert Java developers who want to push their systems to the next level
- Virtual Machine Meetup 2017
Venue for discussing the latest research and developments in the area of managed language execution.
Media
39_ENTRIESVideos, 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.
- 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.
- 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.
- 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
38_ENTRIESPeople that share hard-earned, often undocumented, knowledge and data of the inner workings of the JVM
Contributions are very welcome!
Please have a look at contributing.md for guidelines.
- 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.