asmtools
Used to develop tools for the production of Java .class files.
A curated list of awesome loosely performance related JVM stuff. Inspired by awesome-python.
This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.
Used to develop tools for the production of Java .class files.
Code generation library creating Java classes at runtime without the help of a compiler.
Bytecode generation library similar to BiteScript.
Providing continuous, pauseless operation for Java applications.
GC policy available in the Java Virtual Machine for IBM WebSphere Application Server V8.
Completely passive GC implementation with bounded allocation limit, and lowest runtime performance overhead possible.
The Garbage-First Garbage Collector.
Ultra-Low-Pause-Time Garbage Collector.
Book that addresses new challenges to garbage collection made by recent advances in hardware and software.
Garbage collector optimized for low latency and very large heaps.
Object-oriented, strong and static programming language with an emphasis on immutability, created by Red Hat.
Dialect of Lisp created by Rich Hickey. Dynamically typed with emphasis on functional programming.
A JVM-based Erlang VM.
Pure, lazy, strongly typed functional programming language on the JVM.
Pure functional programming language in the spirit of Haskell.
Java bindings for Go packages.
A simple dynamic language that makes extensive usage of invokedynamic.
Optionally typed and dynamic language, with static-typing and static compilation capabilities.
General-purpose, concurrent, strongly typed, class-based object-oriented language.
Implementation of the Ruby language on the JVM.
PHP on the Java VM.
Python for the Java Platform.
Extension of the Scheme language, which is in the Lisp family of programming languages.
Statically typed programming language for the JVM, Android and the browser.
Java-centric implementation of lua vm built to leverage standard Java features.
Lightweight high-performance JavaScript runtime in Java with a native JVM.
Supports OCaml language v4. Generates plain Java bytecode and have seamless integration with Java.
Rembulan is an implementation of Lua 5.3 for the JVM, written in pure Java with minimal dependencies.
JVM-based interpreter for the R language for the statistical analysis
Strong and static programming language that combine object-oriented and functional programming ideas.
Flexible and expressive dialect of Java, which compiles into Java 5 source code.
Open-Source, Distributed, Deep Learning Library for the JVM.
Fast statistical, machine learning & math runtime.
Statistical Machine Intelligence & Learning Engine.
Reactive Programming for Android by Google.
Library of data structures and utility methods that are a common need when building high-performance applications.
A high-performance cross-system data layer for columnar in-memory analytics.
Java implementation of multidimensional Bloom filters
Insanely fast data interchange format and capability-based RPC system.
A high performance caching library for Java 8.
Low level memory access wrappers.
Micro second messaging that stores everything to disk.
In-memory key-value store designed for low-latency and/or multi-process applications.
Clojure's data structures modified for use outside of Clojure.
Binary serialization format and class generator.
Library of lightweight, self-contained mathematics and statistics components.
Bloom filter replacement for approximated set-membership queries.
Integration modules for RxJava, Reactor, FunctionalJava, Guava & Javaslang.
Collections framework for Java.
Sort very large files using multiple cores and an external-memory algorithm.
A lightweight, zero-dependency library for handling failures.
Collections that are laid out adjacently in both on- and off-heap memory.
Java library for quickly and efficiently parsing and writing UUIDs.
Efficient cross platform serialization library for C++, C#, Go, Java, JavaScript, PHP, and Python.
Java utility methods for geohashing.
Goldman Sachs collections framework.
Java library and comprehensive toolset for harnessing small to moderately sized in-memory datasets.
Cliff Click's High Scale Library.
High Performance Primitive Collections.
A new Executor for Java.
Java port of a concurrent trie hash map implementation from Scala collections.
Java library for the HyperLogLog algorithm.
Library to compress and uncompress arrays of integers very fast.
String similarity and distance measures, including Levenshtein edit distance and sibblings, Jaro-Winkler, Longest Common Subsequence, cosine similarity etc.
Concurrent data structures currently missing from the JDK.
High performance JSON library with advanced compile-time databinding.
Claims to be the fastest JSON parser ever (copy of DSL-JSON).
Useful extensions to Java 8 lambdas.
Java Collections til the last breadcrumb of memory and performance.
Rewrite (port) of LevelDB in Java.
A very memory-efficient trie (radix tree) implementation.
Java API to LMDB (HawtJNI) which is an ultra-fast, ultra-compact key-value embedded data store written in C.
Java API to LMDB (JNR) which is an ultra-fast, ultra-compact key-value embedded data store written in C.
In-memory circular buffers that use direct ByteBuffers to minimize GC overhead.
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.
Collections backed by off-heap or on-disk storage.
Minimal Perfect Hash Tables are an immutable key/value store with efficient space utilization and fast reads.
A small, zero-dep functional util library originating from Google.
Memory buffer pool implementation similar to jemalloc.
A layout-optimized Java data structure package.
Java large off heap cache developed for Apache Cassandra 3.0.
Modern Java IO library that do clever things to save CPU and memory.
Mirrors the Onyx Platform core API by providing a Java equivalent for each component of an Onyx workflow.
Columnar storage format that uses the record shredding and assembly algorithm described in the Dremel paper.
A java.util.HashMap compatible map that won't stall puts or gets when resizing.
A Persistent Java Collections Library.
Google's data interchange format.
Lightweight threads and actors for the JVM.
Immutable in-memory R-tree and R*-tree implementations in Java with reactive api.
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.
Standard for asynchronous stream processing with non-blocking back pressure.
Future standard utilities library for Reactive Streams.
A better compressed bitset in Java.
Rolling hash functions in Java.
Reactive data applications on the JVM for Java, Groovy, Clojure and other.
Library for composing asynchronous and event-based programs using observable sequences.
java.util.Map impl with worst put latencies more than 100 times smaller than java.util.HashMap.
High Performance Message Codec.
A parallel bitmap implementation.
A Java software library of stochastic streaming algorithms.
A fast object pool for the JVM.
A Java library for summarizing data in streams for which it is infeasible to store all events.
Fast integer compression in C using the StreamVByte codec.
High-performance implementation of the Future abstraction.
Composable algorithmic transformations independent from the context of their input and output sources.
No-deps variable int implementation without deps (by Bazel).
Functional Library for Java 8+.
Clean, lightweight protocol buffers for Android and Java.
Hashing any sequences of bytes in Java, including all kinds of primitive arrays, buffers, CharSequences and more.
Parser generator for reading, processing, executing, or translating structured text or binary files.
A collection of source code generators for Java.
Dynamic data management framework and SQL parser plugin.
Compiler plug-ins that find bugs or verify their absence.
Testing tools for javac and annotation processors.
Algebraic data types constructors, pattern-matching, morphisms, optics and typeclasses.
Catch common Java mistakes as compile-time errors.
A Haskell to JVM compiler that supports GHC Haskell.
New experimental just-in-time compiler for Java that is integrated with the HotSpot virtual machine.
Java fork of Parboiled. Write grammars with no preprocessing phase.
Generate simple, safe and consistent value objects.
Parser generator for use with Java.
Java 1.8 Parser and Abstract Syntax Tree for Java.
A Java API for generating .java source files.
Builds mini parsers in pure Java a la Haskell Parsec.
A transpiler from Java to TypeScript/JavaScript.
Design and build extensible DSLs and editors.
Reduce the amount of boilerplate code that is commonly written for Java classes.
Parsing of arbitrary input text based on parsing expression grammars.
LLVM IR interpreter written in Java using Truffle and Graal.
Ahead-of-time translating compiler (transpiler) from Java bytecode to JavaScript.
Framework for implementing languages as simple interpreters.
Framework for development of programming languages and DSLs.
A JNI code generator based on the JNI generator used in Eclipse SWT.
Compile Java bytecode to microcontroller assembly.
Java API for Google's V8 JavaScript engine.
Load native libraries without writing JNI code by hand.
Execution of native assembly from Java.
A low-overhead, non-blocking I/O, external Process execution implementation for Java.
Enriching the connections between the JVM and APIs used by C programmers.
Efficient reliable UDP unicast, UDP multicast, and IPC message transport.
Asynchronous RPC/API client/server library built on top of Java 8, Netty 4.1, HTTP/2, and Thrift.
A High Performance Network library.
Simulating shitty network connections.
HTTP traffic replay in real-time.
A high performance, open source, general RPC framework that puts mobile and HTTP/2 first.
Measures response time of a java application to socket-based requests.
Java API over AccelIO (C library), a high-performance asynchronous reliable messaging and RPC library optimized for hardware acceleration.
Create arbitrary network traffic and behavior to certify whether a network endpoint behaves correctly.
Simulating real-world distributed system failures.
Async event-driven network library for high performance protocol servers & clients.
An HTTP+HTTP/2 client for Android and Java applications.
library for building high performance Java servers.
Proteus Java Client based on RSocket.
Reactive gRPC is a suite of libraries for using gRPC with Reactive Streams programming libraries.
RSocket is a binary protocol for use on byte stream transports such as TCP, WebSockets, and Aeron.
Resiliency tool that helps ensure that your applications can tolerate random instance failures.
Java library for capturing, crafting, and sending packets using libpcap.
A Linux packet crafting tool.
Captures TCP connections flows in a way that is convenient for protocol analysis and debugging.
Pcap editing and replay tools.
Logging of system and process activity for long-term analysis, highlighting overloaded system.
Visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately.
Simple disk I/0 latency measuring tool.
Disassembles class files into code that reflects the java bytecode.
Java Heap Analysis Tool
Launch a postmortem debugger to analyze the content of a core-dump from a crashed JVM.
Prints configuration information for a given process.
Prints stack traces of threads for a given Java process.
Monitors GC and compiler statistics in the JVM.
Reports the structure of the processor, number of cores, hyperthreads and cache size.
Read hardware performance counters on Intel and AMD processors.
Control NUMA policy for processes or shared memory.
System-wide hardware performance monitoring with easy-to-use interface at low overhead.
Linux profiling with performance counters.
Performance analysis tools based on Linux perf_events (aka perf) and ftrace.
Capture system state and activity from a running Linux instance, then save, filter and analyze.
Performance monitoring tools for Linux.
Retrieve or set a processes’s CPU affinity.
Like top but also shows instructions per cycle (IPC).
Java agent that rewrites bytecode to instrument allocation sites.
Java memory allocation profiler.
Sampling CPU profiler for Java featuring AsyncGetCallTrace + perf_events.
a safe, dynamic tracing tool for the Java platform.
tracing, monitoring and testing tool for Java
Turn JVM bytecode execution into flame graphs.
Record your entire java program. Replay on any machine.
Machine learning guided Garbage collection log analysis tool. Auto-detect problems in the JVM GC logs and recommend solutions to it.
GCViewer is a tool that visualizes verbose GC output.
A collection of tools to help visualise process execution.
Tools for tracking down memory / JVM problems & generating predictable-as-possible VM behaviour.
A Histogram that supports recording and analyzing sampled data value counts.
A Metrics Reservoir implementation backed by HdrHistogram.
Utilities for HDR Histogram logs manipulation.
Production heap profiling for the JVM.
Sampling JVM profiler without the safepoint sample bias.
Measure actual object memory use including JVM overhead.
Tool for collecting diagnostic and profiling data about a running Java application with almost no performance overhead.
Memory consumption estimator for Java.
Experimental harness and tests to aid the research in the correctness of concurrency support in the JVM, class libraries, and hardware.
Converting JFR Method Profiling Samples to FlameGraph compatible format.
Tool for creating reports from Java Flight Recorder dumps.
Log analyser / visualiser for Java HotSpot JIT compiler.
JITWatch plugin for IntelliJ IDEA.
jHiccup is an open source tool designed to measure the pauses and stalls associated with an application’s underlying Java runtime platform.
Micro benchmarks written in Java and other languages targetting the JVM.
GUI for comparing JMH results.
Analyze actual object layout schemes, footprint, and references in JVMs.
Helps resolve performance bottlenecks, pin down memory leaks and understand threading issues.
Provide a native API to inspect the state and to control the execution of applications running in the JVM.
Lightweight console application to monitor running jvms on a machine in top-like manner.
Java Agent to collect various metrics and stacktraces for Hadoop/Spark JVM processes in a distributed way.
Java heap analyzer that help find memory leaks and reduce memory consumption.
A memory leak detection library for Android and Java.
Measure the behavior of critical components in production environment.
An application metrics facade for the most popular monitoring tools.
osquery is an instrumentation framework that expose the operating system as a high-performance relational database.
Low-Level Hardware Monitoring and Management for Java.
A vendor-neutral open standard for distributed tracing.
Generate method mappings to use with the linux perf tool.
Linux perf for java programs.
A tool to help diagnose OutOfMemoryError conditions.
JVM agent which sends function-level profiler telemetry to a Riemann server for analysis, visualization, and storage.
JVM agent profiler that sends profiling data to StatsD.
Small set of tools for JVM troublshooting, monitoring and profiling.
Tells you when and why code breaks in production.
Manages custom trace identifiers and carries them through distributed systems.
Fully featured, easy to use, low overhead profiler.
Dead-Simple Packaging and Deployment for JVM Apps.
The shell for the Java Platform.
Fast JVM launching without the hassle of persistent JVMs.
Redefine classes at runtime and skip the redeploy process.
Agent that forcibly terminates the JVM when it is unable to allocate memory or create a thread.
Nailgun is a client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead.
Lightweight highly portable JVM with an option for AOT compilation.
Android runtime (ART) is the managed runtime used by applications and some system services on Android.
Modification of Java HotSwap VM with unlimited support for reloading classes at runtime.
HotSpot virtual machine maintained and distributed by Oracle Corporation.
JVM developed by IBM.
Eclipse OpenJ9.
Translator from Java source to Objective-C code. Keeps shared code between iOS native apps and Android native apps.
A JVM written in Go.
An Open Source Java bytecode to C translator for iOS native development. Designed as a part of the Codename One WORA for mobile project.
Ahead of time compiler for JVM bytecode targeting iOS, Mac OSX and Linux.
The only JVM that eliminates Java garbage collection pauses for large heap sizes.
The only certified multi-platform build of OpenJDK: Free, 100% open source Java.
Linux bcc/BPF using tcplife by Brendan Gregg
JVM monitoring with BPF, examples and hands-on labs for Linux tracing tools workshops.
mini-post series where every post goes deep for only a single topic by Aleksey Shipilёv.
Discussion on Mechanical Sympathy.
Threads impact the performance of each other while modifying independent variables sharing the same cache line. Martin Thompson.
The Java Virtual Machine Specification Java SE 8 Edition.
Starting point for discussions of and information concerning the Java Memory Model.
Unofficial guide to implementing the new Java Memory Model (JMM) specified by JSR-133.
HotSpot Virtual Machine Garbage Collection Tuning Guide.
Where is my safepoint? Nitsan Wakart.
Design decisions, experience and constraints explained in high performance messaging systems.
Digest of the top 10 performance related mistakes Martin Thompson has seen in production.
The Utilization Saturation and Errors (USE) Method is a methodology for analyzing the performance of any system. Brendan Gregg.
Kyle Kingsbury (author of Jepsen).
For expert programmers familiar with Java concurrency, but unfamiliar with the memory order modes available in JDK 9 provided by VarHandles.
Measure instructions per cycle (IPC) for CPU utilization. Brendan Gregg.
Brendan Gregg.
Emmanuel Goossaert.
Daniel Spiewak.
Discussion list for JSR-166.
Technical discussion about the development of the HotSpot bytecode compilers.
HotSpot development mailing list.
Technical discussion about the development of the HotSpot garbage collectors.
Discussion on Mechanical Sympathy.
For expert Java developers who want to push their systems to the next level
Venue for discussing the latest research and developments in the area of managed language execution.
FOSDEM 2018 Free Java devroom.
The GC edition. Shenandoah, ZGC, Zing, Fibers, Falcon etc.
Kirk Pepperdine.
Nitsan Wakart.
Cliff Click.
Cliff Click
Cliff Click
Nitsan Wakart.
Nitsan Wakart.
Martin Thompson.
Martin Thompson.
Gil Tene.
JVM Language Summit 2015.
JVM Language Summit 2016.
JVM Language Summit 2017.
Cliff Click.
Gil Tene at GOTO Conferences.
Aleksey Shipilev.
John Cuthbertson.
Douglas Hawkins.
Brendan Gregg.
Aleksey Shipilëv slightly-deeper-than-usual Shenandoah talk from Virtual Machine Meetup 2017.
Aleksey Shipilev - Devoxx 2017/11
Volker Simonis.
Programming and Performance Intro.
Bugs and Coding Styles.
Java vs C/C++.
Debugging Data Races.
Fast Bytecodes for Funny Languages.
Struct of Arrays vs Array of Structs.
The 3 Hardest Problems in Programming.
Modern Hardware Performance and Cache Lines.
Queuing In Practice.
Andrei Pangin.
Sasha Goldshtein.
Matthew Wilcox.
Developing Oracle/Open JDK/Hotspot and other Java-related technologies.
Lead Language Designer of Kotlin @ JetBrains.
Java Language Architect at Oracle.
Facebook, Netflix, Apple engineering.
Cloud performance, kernel engineer, speaker, author.
JRuby guy.
Working with OpenJDK stuff @ Oracle.
Creator of the HotSpot Server Compiler.
Senior research scientist in the Scalable Synchronization Research Group within Oracle.
RxJava committer that blogs about advanced RxJava.
Author of the Java memory model.
Azul Systems.
Author of 250+ Java Specialists' Newsletters.
JVM expert.
Square, Google, open source hacker.
HotSpot developer.
Founder & CTO of Lightbend.
Blogger. Author of JOOQ.
Java language team alumnus.
Chief Architect, Java Platform Group, Oracle.
Pasty faced performance gangster.
Java Champion.
Working in high performance and distributed computing for nearly 20 years.
Where is my safepoint? Nitsan Wakart.
Netty developer.
Forever undisputed SLOC Scala compiler dev.
Hacking on the HotSpot JVM at Oracle.
Innovative developer of high performance Java systems for competitive advantage.
Author of ByteBuddy.
Developer, Speaker, Author.
Performance Analyst, developer, blogger.
Parallel Universe. Leading Fibers and Continuations for the JVM.
Java Champion. Occasional blogger and speaker. Best known for Joda projects and JSR-310.
Ex-CTO, Ex-NASA researcher, network geek, messaging middleware designer.
Project Reactor Lead @Pivotal.
Doctor Deprecator. Java/JDK/OpenJDK developer
hacking HotSpot JVM @ Oracle.
Deputy CTO at Typesafe Inc.
rust-unofficial/awesome-rust
A curated list of Rust code and resources.
jaywcjlove/awesome-mac
This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.
vinta/awesome-python
The definitive list that answers "I want to do X in Python, which tool should I use?"
fffaraz/awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
avelino/awesome-go
A curated list of awesome Go frameworks, libraries and software
ziadoz/awesome-php
A curated list of amazingly awesome PHP libraries, resources and shiny things.