Philipp Lengauer

Philipp recently completed his PhD work on memory monitoring in Java Applications at the Johannes Kepler University. At University, he taught Java Programming and Compiler Construction as well as special courses on how to monitor Java applications properly. He is also a frequent speaker at performance-related scientific conferences. Recently, he joined the OneAgent Team at Dynatrace to advance their memory monitoring capabilities.

Philipp Lengauer's articles

Understanding the G1 Garbage Collector – Java 9

Oracle’s Java 9 Hotspot VM ships with the Garbage First (G1) GC as its default garbage collector. This GC, first introduced in Java 7, has the unique ability to efficiently and concurrently deal with very large heaps. It can also be configured to not exceed a maximum pause time. In this post we’ll take a look at how the G1 works compared to other collectors and why it can so… read more

New ways of introducing compiled code – Java 9

In Java 9, compiled code is no longer exclusively created using the built-in just-in-time (JIT) compilers. This blog post explores two ways that compiled code can be introduced without using a built-in JIT. Java Virtual Machine Compiler Interface (JVM CI) Java 9 specifies a new interface for JIT compilers that’s written in Java (JVMCI). This means that anybody can ship a JIT compiler that can be easily attached to… read more

What’s ahead with Java 9 & Project Jigsaw

With Java 9 finally released, it’s time to look at some of its new features. This post covers the most prominent (and most criticized) feature (i.e., Project Jigsaw). Project Jigsaw splits the JDK into several modules and Java developers are encouraged to do the same in their code as well. Every module can, for example, be packaged into a jar file and shipped separately. All modules contain meta information… read more

Preview of monitoring support for Oracle GraalVM-based applications

Oracle GraalVM is a novel ecosystem that’s used to compile and run applications that are written in numerous languages, including JavaScript, Ruby, R, Python, JVM-based languages (such as Java, Scala, Groovy, and Kotlin), as well as LLVM-based languages, including C, C++, Fortran, and Rust. GraalVM languages can run on the Java VM, be linked with native code, or embedded into data engines, such as MySQL or REDIS. In… read more