David Ohana
Nov 4, 2020

--

JFR was not a good match for me due to multiple reasons:

Mainly:

1. The results are saved into a file, which you have to open with a dedicated tool. This means also mounting the file and retrieving it which is a hassle in production. I think its much easier to be able to view only the results you need in the application log.

2. JFR works by stack-trace sampling, which means you get % time spent in function level only. The batch process we use has some long functions and I don't want to refactor those into smaller ones, having to pass context to each, which may also incur an overhead.

But also:

3. JFR requires a commercial license for Java 8. We use Java 11 but I didn't want to have this limit in case we ever decide to deploy to Java 8 too.

4. You have to enable JFR when running the java executable, and this means changing the dockerfile to enable it - a hassle.

--

--

David Ohana
David Ohana

No responses yet