Download this PDF book: Java Performance: The Definitive Guide: Getting the Most Out of Your Code 1st Edition by Scott Oaks
The science part of this statement isn’t surprising; discussions about performance in‐ clude lots of numbers and measurements and analytics.
Most performance engineers have a background in the sciences, and applying scientific rigor is a crucial part of achieving maximum performance. What about the art part? The notion that performance tuning is part art and part science is hardly new, but it is rarely given explicit acknowledgment in performance discussions.
This is partly because the idea of “art” goes against our training. Part of the reason is that what looks like art to some people is fundamentally based on deep knowledge and experience.
It is said that magic is indistinguishable from suffi‐ ciently advanced technologies, and certainly it is true that a cell phone would look magical to a knight of the Round Table. Similarly, the work produced by a good per‐ formance engineer may look like art, but that art is really an application of deep knowl‐ edge, experience, and intuition.
This book cannot help with the experience and intuition part of that equation, but its goal is to help with the deep knowledge—with the view that applying knowledge over time will help you develop the skills needed to be a good Java performance engineer.
The goal is to give you an in-depth understanding of the performance aspects of the Java platform. This knowledge falls into two broad categories. First is the performance of the Java Virtual Machine (JVM) itself: the way in which the JVM is configured affects many aspects of the performance of a program.
Developers who are experienced in other languages may find the need for tuning to be somewhat irksome, though in reality tuning the JVM is completely analogous to testing and choosing compiler flags during com‐ pilation for C++ programmers, or to setting appropriate variables in a php.ini file for PHP coders, and so on.
The second aspect is to understand how the features of the Java platform affect perfor‐ mance. Note the use of the word platform here: some features (e.g., threading and syn‐ chronization) are part of the language, and some features (e.g., XML parsing perfor‐ mance) are part of the standard Java API.
Though there are important distinctions between the Java language and the Java API, in this case they will be treated similarly. This book covers both facets of the platform.
The performance of the JVM is based largely on tuning flags, while the performance of the platform is determined more by using best practices within your application code.
In an environment where developers code and a performance group tests, these are often considered separate areas of expertise: only performance engineers can tune the JVM to eke out every last bit of performance, and only developers worry about whether their code is written well.
That is not a useful distinction—anyone who works with Java should be equally adept at understanding how code behaves in the JVM and what kinds of tuning is likely to help its performance. Knowledge of the complete sphere is what will give your work the patina of art.
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
Improve Java-driven database application performance
About the Author
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.
Table of Contents:
1. Introduction
2. An Approach to Performance Testing
3. A Java Performance Toolbox
4. Working with the JIT Compiler
5. An Introduction to Garbage Collection
6. Garbage Collection Algorithms
7. Heap Memory Best Practices
8. Native Memory Best Practices
9. Threading and Synchronization Performance
10. Java Enterprise Edition Performance
11. Database Performance Best Practices
12. Java SE API Tips
About the book:
Publisher : O'Reilly Media; 1st edition (May 6, 2014)
Language : English
Pages : 426
File : PDF, 13MB
Free Download the Book: Java Performance: The Definitive Guide: Getting the Most Out of Your Code 1st Edition by Scott Oaks
PS: Share the link with your friends
If the Download link is not working, kindly drop a comment below, so we'll update the download link for you.
Happy downloading!