Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Java performance : the definitive guide
Oaks S., O’Reilly Media, Inc., Sebastopol, CA, 2014. 426 pp. Type: Book (978-1-449358-45-7)
Date Reviewed: Sep 30 2015

Java program performance depends on many factors, and the analysis of factors that influence performance requires both knowledge and experience. The constantly evolving Java platform offers new language features to improve programmer productivity and application performance. Having knowledge about new technologies and getting experience on performance-related issues help developers discover performance improvement opportunities.

This book helps developers and performance engineers improve performance by suggesting programming tips, as well as basic performance-tuning facilities provided by the Java platform. It presents both interesting coding examples by explaining the performance impact and Java virtual machine (JVM) features by providing performance tuning hints.

Chapter 1, which consists of a couple of pages, introduces the Java platform and basic performance issues affecting a Java program. Chapter 2 presents how to assess the performance of a program by explaining benchmarking and performance metrics. The chapter provides code examples and discusses the code sections affecting performance measurement quality.

Chapter 3 introduces program analysis tools including operating system-level monitoring tools and application-level profiling tools. The chapter provides the usage and parameters related to tools with sample executions. Chapter 4 explains the basics of the Java compiler and the performance-tuning options provided by the compiler. While the chapter reports many numerical results for the options, it also includes practical comments and suggestions about compiler performance.

Chapters 5 and 6 provide practical and theoretical information about the garbage collection (GC) mechanism in Java. While chapter 5 gives the basics and tuning tips, advanced algorithmic details for different garbage collectors are explained in chapter 6. The effect of GC tuning options is analyzed by presenting visual examples, and guidance for the correct collector selection is provided for different execution scenarios.

Chapters 7 and 8 discuss memory usage practices to improve the performance of Java applications. The former provides heap memory analysis techniques and programming tips to improve program memory performance, and the latter explains JVM native memory usage behavior and provides JVM tunings to improve the way that it uses OS memory by including system-level commands.

Chapter 9 explains different threading mechanisms provided by the Java language and demonstrates the advantages and disadvantages of them in the code samples. The chapter also presents programming and tuning approaches to overcome synchronization/locking overheads.

Chapter 10 presents Java Enterprise Edition (Java EE) performance issues by focusing on JavaServer Pages (JSPs), servlets, and Enterprise JavaBeans (EJBs). The chapter starts with general web container performance issues and gives performance tips about hypertext transfer protocol (HTTP) session state. It then explains more advanced concepts, like EJB tuning, Extensible Markup Language (XML) parser, and Java EE networking.

Chapter 11 provides information about database performance issues, including both basic concepts and Java-specific details. The chapter covers the Java Persistence API (JPA), which provides the management of relational data in Java applications, and the underlying Java Database Connectivity (JDBC) technology. It explains performance-influencing factors related to JDBC drivers, and performance techniques to optimize JPA operations. All of the concepts are explained by giving code samples and numerical performance results for different scenarios.

Chapter 12 presents the main Java Standard Edition (SE) performance tips including input/output (I/O) buffering, class loader options, random number generator algorithms, exception handling, string processing, logging mechanism, Java collection API usage, and the latest Java 8 features.

The book has one appendix that summarizes performance-tuning flags mentioned throughout the book by specifying the flag commands, the usage, and the reference pages.

As an experienced Java programmer and instructor, I enjoyed reading the book. Its friendly language makes it easy to read. With the real code samples and real commands, it is very practical to try the performance-tuning options and recommendations provided by the author. The quick summary sections, tool output visualizations, and performance results are very helpful in understanding the concepts.

More reviews about this item: Amazon, Goodreads

Reviewer:  Isil Oz Review #: CR143811 (1512-1004)
Bookmark and Share
  Reviewer Selected
 
 
Java (D.3.2 ... )
 
 
Optimization (D.3.4 ... )
 
 
Performance Measures (D.2.8 ... )
 
 
Performance of Systems (C.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Java": Date
Java for C/C++ programmers
Daconta M., John Wiley & Sons, Inc., New York, NY, 1996. Type: Book (9780471153245)
Apr 1 1997
Java programming explorer
Bartlett N., Leslie A., Simkin S., Coriolis Group Books, Scottsdale, AZ, 1996. Type: Book (9781883577810)
Apr 1 1997
The Java handbook
Naughton P., Osborne/McGraw-Hill, Berkeley, CA, 1996. Type: Book (9780078821998)
Apr 1 1997
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy