Home » Tag Archives: JVM

Tag Archives: JVM

JVM Architecture 101: Get to Know Your Virtual Machine

A beginner’s crash course in Java Virtual Machine (JVM) architecture and Java bytecode 101 Java applications are all around us, they’re on our phones, on our tablets, and on our computers. In many programming languages this means compiling the code multiple times in order for it to run on different OSes. For us as developers, maybe the coolest thing about ...

Read More »

JVM Architecture: Execution Engine in JVM

Hello readers! In the previous article of JVM series, developers learned about the Virtual machine’s ClassLoader and Runtime Data Areas components. This tutorial will help developers to correctly understand the Execution Engine in JVM. 1. Introduction Before moving further let’s take a look at the Java Virtual Machine and its basic characteristics. 1.1 What is Java Virtual Machine (JVM)? Java ...

Read More »

JVM Architecture: JVM Class loader and Runtime Data Areas

Hello readers! In the previous article of JVM series, developers learned about the Java Virtual Machine (JVM) and it’s architecture. This tutorial will help developers to correctly answer the questions on below topics: ClassLoader Subsystem Runtime Data Areas 1. Introduction Before moving further let’s take a look at the Java Virtual Machine and its basic characteristics. 1.1 What is Java ...

Read More »

JVM Architecture: Overview of JVM and JVM Architecture

Hello readers! In this tutorial, we will understand and learn the Java Virtual Machine (JVM) and its architecture. This tutorial will help you to correctly answer the below questions: What is JVM in Java? Different components of JVM Difference between JVM, JRE, and JDK 1. Introduction Java Virtual Machine (JVM) is an abstract virtual machine that resides on your computer ...

Read More »

Understanding Java Buffer Pool

Understanding Java Buffer Pool The buffer pool space is located outside of the garbage collector-managed memory. It’s a way to allocate native off-heap memory. What’s the benefit of using buffer pools? To answer this question, let’s firstly learn what byte buffers are. Byte Buffer Non-Direct Buffer java.nio package comes with the ByteBuffer class. It allows us to allocate both direct and non-direct ...

Read More »

Profiling in Production

Profiling in Production If you ever had some serious issues with a performance of your Java application, most probably you know how valuable thread profiling can be. But do you know which profiler you should use? There are two basic techniques used by profilers – sampling and instrumentation. Sampling Profilers A sampling profiler involves periodically asking the JVM for the ...

Read More »

Minimize Java Memory Usage with the Right Garbage Collector

Size matters when it comes to software. It has become clear that using small pieces within the microservice architecture delivers more advantages compared to the big monolith approach. The recent Java release of Jigsaw helps decompose legacy applications or build new cloud-native apps from scratch. This approach reduces disk space, build time and startup time. However, it doesn’t help enough ...

Read More »

How to shoot yourself in the foot building a Java Agent

Over the years of building Plumbr, we have encountered many challenging problems. Among others, making the Plumbr Java Agent perform reliably without endangering the customers’ applications, is a particularly tricky one. To safely gather all the required telemetry from a live system poses a huge set of problems to tackle. Some of them are quite straightforward while some of them ...

Read More »