Home » Author Archives: Nikita Salnikov Tarnovski

Author Archives: Nikita Salnikov Tarnovski

What is promotion rate?

java-logo

I do believe you are familiar with the Peter principle. In general, the principle is an observation that promotions can and will lead to a situation where the promoted person is no longer qualified for the job. For the JVM the similar problem exists. Promoting objects too fast can have significant impact to performance. In this post we open up ...

Read More »

What is allocation rate?

java-logo

Phrases such as “unsustainable allocation rate” and “you need to keep your allocation rates low” seem to belong to the vocabulary of Java Champions alone. Complex, scary and surrounded by magic aura. As it often happens, the magic disappears with a puff of smoke when you look at the concepts more closely. This post is trying to remove the magic ...

Read More »

Stack smashing detected

java-logo

 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 »

Squeezing data into the data structure

java-logo

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 »

Examples of caching backfiring on performance

software-development-2-logo

In 2015 it should not surprise anyone that caching frequently used data is likely to improve the performance of the application. Caching certain data structures locally inside the JVM instead of requesting them via remote calls from external storage is a widely used technique. Introducing such caches to your applications is likely to improve the application’s performance both in regards ...

Read More »

GC tuning in practice

java-logo

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?

java-logo

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 »

Logging stop-the-world pauses in JVM

java-logo

Different events can cause the JVM to pause all the application threads. Such pauses are called Stop-The-World (STW) pauses. The most common cause for an STW pause to be triggered is garbage collection (example in github) , but different JIT actions (example), biased lock revocation (example), certain JVMTI operations , and many more also require the application to be stopped. ...

Read More »

Turning on GC logging at runtime

java-logo

There is always the next JVM behaving badly. And you know by heart that if you just could have had those few startup options exposing some more information about what is going on, you might have stood a chance of actually fixing the goddamn thing. But nope, exactly the flag you need (be it -XX:+HeapDumpOnOutOfMemoryError or -XX:+PrintGCDetails) is always missing. ...

Read More »

Want to take your Java skills to the next level?

Grab our programming books for FREE!

Here are some of the eBooks you will get:

  • Advanced Java Guide
  • Java Design Patterns
  • JMeter Tutorial
  • Java 8 Features Tutorial
  • JUnit Tutorial
  • JSF Programming Cookbook
  • Java Concurrency Essentials