How To Create Company Culture When Everyone Is Remote

When it comes to running a business today something many of us were not prepared to work on and pivot into is creating a strong company culture through Zoom — how do you even begin to bridge the gap…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Faster start up of JVM based applications

I am sure if you have run any JVM based application, you would be familiar with the slow startup nature of such applications, compared to native applications written in C/C++. When you start a web server or an IDE like Eclipse you have to wait for some seconds before you can start using it.

Like me, you would also have wondered why does the application take so long to start up and what can be done to eliminate or reduce the start up time. Wouldn’t it be nice if you can launch an Eclipse like application and it comes up immediately, like vi or notepad!

During startup JVM and the application have lot of work to do to come to a usable state. For Eclipse like application, the number of classes required and the amount of code to execute before it can be used is enormous.
The JVM has to load and initialize all these classes. When the JVM starts running the code, the methods are initially interpreted. As the application continues, JVM identifies hot methods and the JIT compiles them into the machine code. JIT compilation comes with its own cost, requiring significant amount of CPU and memory. The transition from being interpreted to compiled code depends a lot on the compilation strategy employed by the JVM. No doubt that JIT compilation helps in speeding up the application execution, but it happens rather gradually. All these factors contribute to the perceived slow startup of the application.

There have been many efforts to reduce or eliminate the start up time of the applications.

First two approaches are heavily used in production when using OpenJ9 to improve the startup performance. OpenJDK with Hotspot has also introduced these technologies with recent releases.
However, I feel CRIU can be a game changer as it completely eliminates the startup time of the application. It suits JVM based heavy applications perfectly. Another use-case is the container based environments like Apache Openwhisk where quick startup is paramount. CRIU also provides runtime agnostic behavior, so whether you are using JVM, Node or Go, it would work just the same.
I am excited enough to try out CRIU with OpenJ9 based applications to see how it fares. Are you?

Add a comment

Related posts:

The Devastating Consequences of Excuses and 8 Ways to Stop Them

As much as we hate to admit it, we’ve all made excuses before. And, the consequences of excuses can impact us from creating positive changes in our life.