Coding and testing are often considered separate areas of expertise. In this comprehensive guide, author and Java expert Scott Oaks takes the approach that anyone who works with Java should be equally adept at understanding how code behaves in the JVM, as well as the tunings likely to help its performance.
You’ll gain in-depth knowledge of Java application performance, using the Java Virtual Machine (JVM) and the Java platform, including the language and API. Developers and performance engineers alike will learn a variety of features, tools, and processes for improving the way Java 7 and 8 applications perform.
Apply four principles for obtaining the best results from performance testing
Use JDK tools to collect data on how a Java application is performing
Understand the advantages and disadvantages of using a JIT compiler
Tune JVM garbage collectors to affect programs as little as possible
Use techniques to manage heap memory and JVM native memory
Maximize Java threading and synchronization performance features
Tackle performance issues in Java EE and Java SE APIs
Scott Oaks is an architect at Oracle Corporation, where he works on the performance of Oracle’s middleware software. Prior to joining Oracle, he worked for years at Sun Microsystems, specializing in many disparate technologies from the SunOS kernel to network programming and RPCs to windows systems and the OPEN LOOK Virtual Window Manager. In 1996, Scott became a Java evangelist for Sun and in 2001 joined their Java Performance group--which has been his primary focus ever since. Scott also authored O’Reilly’s Java Security, Java Threads, JXTA in a Nutshell, and Jini in a Nutshell titles.
The animals on the cover of Java Performance: The Definitive Guide are saiga antelopes (Saiga tatarica), commonly known as saigas. Their most distinctive feature is an oversized flexible nose, which hangs partially over their mouths. The saigas' noses help filter out dust in the summer, and heat up air in the winter before it goes to their lungs.Saiga coats also adapt to both seasons: in the cold, it is thick and white, but turns a cinnamon color and thins out significantly in the summer. The animals are around 2-3 feet tall at the shoulder, and weigh between 80-140 pounds. Saigas have long thin legs, and are able to run up to 80 miles an hour to avoid predators. Their habitat is in semidesert steppes, where they spend their days grazing on various grasses and shrubs (including some that are poisonous to other animals).Saigas normally live in herds of 30-40 individuals, but gather in the thousands for migration in the winter. Rut begins in late November, after the herds move south. During this time males don't eat much and violently fight with each other, causing many to die from exhaustion. The survivors collect and impregnate a harem of females, who will each give birth to one or two young in late April.The saiga population is almost exclusively within Kazakhstan, with a small isolated subspecies in Mongolia. Though they used to range all across the steppes of Central Asia, saigas have been severely overhunted in the last few decades and are designated as "critically endangered." The collapse of the USSR led to uncontrolled hunting and a dramatic 97% decrease in the saiga herds. Recovery has also been much more difficult because male saigas are the only sex with horns, a commodity much in demand in traditional Chinese medicine. As a result, hunters have nearly wiped out male saigas and crippled the species' ability to breed.The cover image is from a loose plate, origin unknown.
Comments about oreilly Java Performance: The Definitive Guide:
While it is true that there is no silver bullet to improve performance, i was a bit disappointed (at first) to get the impression that there is little can be done other than focusing on the potentially main contributing factors, in particular database-related, network-related operations. To a very large extent, it is true that database operations are among the most critical items we would look into in tuning performance. I agree with the author's standing in this aspect. The thing I would expect more is that, putting database-, network-related issues aside, what are the good practices or parameters we should be mindful of.
* I'm no expert to say right or wrong and that's the very reason I purchased the book. It could well be the fact that little can be done. I trust the author's authority in the area. I just want to say that I appreciate most on the chapter discussing the pros and cons of Garbage collection in different settings. It would be more fruitful if there are some more recommendations for some practices/parameters that could be highlighted with respect to different scenarios. No silver bullet covering all scenarios. Agree. Just want to know, if there is any more knowledge sharing, about usage of some particular parameters apply difference scenarios.
Bottom Line No, I would not recommend this to a friend