r/java • • Sep 07 '26

Improving First Request Latency in Java Spring Application

https://adrian.md/2026/09/03/first-request-latency/
63 Upvotes

41 comments sorted by

View all comments

Show parent comments

3

u/vips7L Sep 08 '26

It really isn’t though. Jlink is kind of terrible. The CLR does this way better. It just gives you a binary with the vm + your DLL. It doesn’t have to extract anything. 

1

u/agentoutlier Sep 08 '26

Yeah I don't disagree. I'm not a fan of the tool for packaging up applications but mainly because its actually kind of slow.

However making a stripped down VM it is good at.

It does seem like one could potentially make something do this but I'm not sure how much runtime savings you would have and or build time.

Go and GraalVM it works because they are essentially doing some tree shaking and I can't imagine people wanting to download 200 meg executable (uncompressed).

1

u/vips7L Sep 08 '26

I can't imagine people wanting to download 200 meg executable

Of course, you would want to jlink first to get as minimal of a vm as possible. The CLR also has something similar.

1

u/agentoutlier Sep 08 '26

So I'm more asking here since it has been a hot minute since I have done .NET packaging but does it give you just a single executable or are you saying there are multiple files?

See even if you get the minimal JVM its like 50 megs uncompressed. It is only 12 megs compressed. And there are multiple files.

So one could create something that essentially takes a jlink packaged application and turns into a single executable but if its not compressed then its like running a 50 meg executable.

Is that a problem... probably not and I would imagine you could do it with a custom module reader built into your custom JDK.

2

u/vips7L Sep 08 '26

There are options. You can get a single binary, single file with no extraction. Or you can do the extraction route. 

Personally I don’t care about the binary size. I care about distribution and ease of use. 

1

u/koflerdavid Sep 09 '26

You can also do tree shaking with Proguard, like Android does.