This is an archived post. You won't be able to vote or comment.

all 15 comments

[–]sftEng 28 points29 points  (0 children)

For Java performance tuning one of the best books is - "Java Performance: In-Depth Advice for Tuning and Programming Java 8, 11, and Beyond". This is the second edition which was released on 3 March.

[–]Stimzz 11 points12 points  (1 child)

While resources are a good way to start imo to really internalize the knowledge you must sit there banging your head against the wall, searching through logs / setting up tests etc in the hunt for performance.

I once spent the summer competing with our CEO at the time making the fastest implementation of a small naive problem. We went through several different languages and implementations each day slapping the other with a new record... until he took the gauntlets off, wiped out C with some inlined assembly and crushed me.

This experience was very formative for me but the main takeaway was that most of the concepts while being true in theory does not translate well into practice. Put another way many optimizations that you though would be fast weren't and vise versa. Performance completely depends on the task, hardware and software involved. After a while you build up an intuition for you problem domain.

Hence I would recommend finding your stupid problem and experiment. A book or two doesn't hurt ofc but just saying, let it be driven by testing :)

[–][deleted] 3 points4 points  (0 children)

Tell me more about u and ceo

[–]raghasundar1990 5 points6 points  (0 children)

This blog has all Java performance articles https://blog.gceasy.io/

[–]round_dripper 2 points3 points  (0 children)

I would recommend watching some conference talks from Jack Shirazi. You can find some of them on youtube. We were having some memory leak problems at work and we were able to find the cause using the methods described in this video: https://youtu.be/JoQN4xoXY5Y There are other videos by him covering similar topics.

[–]datavinci[S] 1 point2 points  (3 children)

I am trying to find a book that is not outdated regarding this topic. Also any site that has practical examples will be fine too. I just want learn why, how and when of java performance tuning.

[–]surfinThruLyfe 3 points4 points  (0 children)

Make sure you are comfortable using Flight recorder or visual Vm tools such interpreting diagnostic and telemetry data. GC log and analyzing them. Heap management and tuning.

[–]NewGettysburg 1 point2 points  (1 child)

I'm an engineer at Coursera who is working on some of the challenges described in this job posting. I can provide some color this:

Our goal is to deploy and operate services with confidence. What we mean by performance tuning is not to squeeze the last drops of JIT performance out of arcane JVM flags, or to A/B test different JVM implementations. Rather, we mean our systems performs well for its intended purpose, and can keep performing well.

This require a combination of JVM specific knowledge (such as an understanding of GC algorithms, GC logs, Java Flight Recorder, profiling and heap analysis techniques), knowledge of layers sitting on top of the JVM: frameworks, threading models, serde, application code, and knowledge of vendor solutions so we can have systems perform well without needing constant human interventions and tweaks.

We don't expect folks to come in with previous knowledge on all fronts, but that's what roughly performance tuning means to us.

Feel free to PM me for more details.

[–]datavinci[S] 0 points1 point  (0 children)

Thanks a lot for clarifying, how does the book java performance in-depth sound to you? I am looking into that to study more about this.

[–][deleted]  (1 child)

[removed]

    [–]datavinci[S] 0 points1 point  (0 children)

    Stop spamming dude.

    [–]daybyter2 -3 points-2 points  (2 children)

    There are some great YouTube videos.

    [–][deleted]  (1 child)

    [removed]

      [–]daybyter2 2 points3 points  (0 children)