Home » JVM » Page 7

Tag Archives: JVM

Chronicle Journal – Customizable Data Store

Overview The way to make any data structure or algorithm as fast as possible is for the code to do exactly what you want and no more. The problem with building a data store which does every thing anyone could want is that it won’t do anything particularly well. What can you achieve with a custom data store in terms ...

Read More »

Stack smashing detected

 I bet every Java developer has been surprised at some point in the beginning of their career when they first encounter native methods in Java code. I am also sure that the surprise has later vanished over the years with coming to understand how the JVM handles calls to native implementations via JNI. This post is about a recent experience with ...

Read More »

An Unexpected Allocation – JIT Compilation Jitter

Whilst working on ByteWatcher (see my last post) I came across something rather strange. This is the actual code snippet used to find out how much allocation there has been on a particular thread: return (long) mBeanServer.invoke( name, GET_THREAD_ALLOCATED_BYTES, PARAMS, SIGNATURE ); For the full context see here. (The way ByteWatcher works is to call this method periodically to monitor allocation.) One ...

Read More »

Squeezing data into the data structure

This story is about a capacity optimization task that we recently carried out at Plumbr. It all started with an innocent-looking requirement being added to the existing mix. As you might know, Plumbr monitoring solution is distributed as a Java Agent which connects to a Server. The small addition required to keep track of all the connected Agents over time so ...

Read More »

What is the fastest Garbage Collector in Java 8?

OpenJDK 8 has several Garbage Collector algorithms, such as Parallel GC, CMS and G1. Which one is the fastest? What will happen if the default GC changes from Parallel GC in Java 8 to G1 in Java 9 (as currently proposed)? Let’s benchmark it. Benchmark methodology Run the same code 6 times with a different VM argument (-XX:+UseSerialGC, -XX:+UseParallelGC, -XX:+UseConcMarkSweepGC, ...

Read More »

JVM Buzzwords Java developers should understand

This article will share with you a few JVM “buzzwords” that are important for Java developers to understand and remember before performing any JVM performance and garbage collection tuning. A few tips are also provided including some high level performance tuning best practices at the end of the article. Further recommendations regarding the Oracle HotSpot concurrent GC collectors such as CMS and G1 ...

Read More »

GC tuning in practice

Tuning Garbage Collection is no different from any other performance-tuning activities. Instead of giving in to temptation for tweaking random parts of the application, you need to make sure you understand the current situation and the desired outcome. In general it is as easy as following the following process: State your performance goals Run tests Measure Compare to goals Make ...

Read More »

What is Garbage Collection?

The following is an example from our Garbage Collection Handbook which will be published in the forthcoming weeks. In the meanwhile, take your time to get yourself familiar with the basics of the Garbage Collection – this is going to be the very first chapter of the book. At the first sight, garbage collection should be dealing with what the name suggests – finding ...

Read More »

Immutable Infrastructure, hotdeploys, and the JVM

Do you deploy and undeploy your JVM-based applications (regardless of JVM container/no-container) in production? ie, when you have new versions of an app or service, do you mutate the running JVM by “undeploying” and “hot deploying” the new, updated version of that app? Or, do you try to “move” a deployment of your application from one JVM to another at ...

Read More »