look at some of the benchmark command lines at spec.org, they've spent a lot of time tweaking heap, GC, inlining and it's not uncommon to have two dozen -XX switches set e.g.
At least in terms of garbage collection and how the JIT compiler works it covers those well. It also has a lot of stuff other than that, like how to troubleshoot memory issues in a unix/windows box
I think 2x is optimistic. As a rule of thumb heap should be 3x to 4x the live set size see for example http://www.amazon.com/Java-Performance-Charlie-Hunt/dp/0137142528/ref=sr_1_3?s=books&ie=UTF8&qid=1452189760&sr=1-3&keywords=java+performance
OTOH Firefox and Chrome are C++ and use Gigabytes of memory.
you've read Hunt's book right?
http://www.amazon.com/Java-Performance-Charlie-Hunt/dp/0137142528/
---------------
look at some of the benchmark command lines at spec.org, they've spent a lot of time tweaking heap, GC, inlining and it's not uncommon to have two dozen -XX switches set e.g.
http://www.spec.org/jbb2005/results/res2012q3/jbb2005-20120625-01092.html (MaxInlineSize and FreqIS is really important
http://blog.javabenchmark.org/
http://www.spec.org/benchmarks.html#java
---------
also these guys
http://javaeesupportpatterns.blogspot.com/
http://marxsoftware.blogspot.com/
http://vanillajava.blogspot.com/
I'm not sure there is any, depending on the level of detail you need you might have to read the source code. This book is very detailed on certain parts of it: "Java Performance" -> http://www.amazon.co.uk/Java-Performance-Addison-Wesley-Charlie-Hunt/dp/0137142528/ref=sr_1_2?ie=UTF8&qid=1449831270&sr=8-2&keywords=java+performance
At least in terms of garbage collection and how the JIT compiler works it covers those well. It also has a lot of stuff other than that, like how to troubleshoot memory issues in a unix/windows box
I think Java Performance and Java Concurrency In Practice are two of the main ones. Especially JCIP is the reference for concurrent programming.