Hacker News new | past | comments | ask | show | jobs | submit login

What are good, up to date resources for performance tuning to that degree in Java? I've looked into this a few times and keep hitting walls where the resources I have found say "let the JVM do it's thing".



Mechanical sympathy is a good source, probably the source for java specific topics. In general, you'll want to really, really learn the internals of the JIT so you can structure your application to cooperate with the JIT and the GC.

Beyond that, I've found the biggest throughput gains and/or latency decreases by implementing the right threading or lack of threading, locking or lock-free implementations, and then tuning, profiling and optimizing things just right for the target hardware.

That's just a little sentence, but it's an amazingly hard topic. There are not many resources about this out there beyond just looking at high performance systems, regardless of language. The innodb storage engine is a fun project with some interesting locking, and I like reading about the things the kernel does.


This mailing list is amazing:

https://groups.google.com/forum/#!forum/mechanical-sympathy

I understand maybe a third of it, but what I do get is high quality.


Besides what the others pointed out, check profilers like VisualVM, ControlCenter, Netbeans integrated one.

There is also the option to get the generated machine code, here is a recent example with the Oracle JDK about SIMD programming in Java.

http://prestodb.rocks/code/simd/

Finally, note that just like many programming languages, Java enjoys multiple implementations, each with its own JIT.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: