Enterprise Java Performance

Enterprise Java Performance

By (author)  , By (author) 

List price: US$53.50

Currently unavailable

Add to wishlist

AbeBooks may have this title (opens in new window).

Try AbeBooks


For courses in Java Programming-Intermediate/Advanced.

This text builds upon basic examples written in Java to present more complex topics and methods of improving the performance of Enterprise applications. The authors' first-hand experience at IBM's SanFrancisco Project provides students with deep insight into the use of Java for business needs-and guidance to help avoid performance pitfalls.
show more

Product details

  • Paperback | 432 pages
  • 175.26 x 228.6 x 20.32mm | 771.1g
  • Prentice Hall
  • Upper Saddle River, United States
  • English
  • 0130172960
  • 9780130172969

Table of contents


1. Performance in General.

Performance Versus Optimization. Performance Life Cycle. Before Coding. During Coding. After Coding. Types of Performance Problems. Low-Hanging Fruit. Application Design. Poor Design Choices. Information Hiding. Physics. The Java Language and Its Environment. Interactions with Other Environments. Persisting Java Objects. Time, Distance, and Space.

2. Tools for Identifying Java Performance.

Java-Specific Tools. Java Profiler. Third-Party Java Profiling Tools. Simple Timing Measurements. Verbosegc. The PerfMonitor Class. System Tools: Windows NT Performance Monitor. Summary.

3. Java Performance Problem Areas.

Basic Timing Comparisons. Just In Time and Static Compilation. Creating and Reusing Objects. Using Constants. Using Strings. StringTokenizer Usage. Exception Usage. Loop Techniques. Loop Constants. Local Variables. Terminate Loops Early. Casting Techniques. Avoid Losing Class Information. Avoid Contiguous Instanceof and Casts. Avoid Unnecessary Casts and Instanceofs. Synchronization. Garbage Collection. Collections. Collections Framework. Vectors. Hash Tables. Summary.


4. Local/Remote Issues.

Possible Approaches to Remote Objects. Remote Method Invocation. Enterprise Java Beans. SanFrancisco's Foundation Layer. The Costs of Remote Access. How to Write and Use a Remote Server in Java. Changing Method Call Granularity. The Remote Access Spectrum. Object Granularity. Implications of Granularity for Performance. Putting the Data in the Right Place. Object Affinity. Partitioning. Summary.

5. Granularity.

Interface Granularity. Implementation Granularity. Granularity and Performance: A Design Example. Example 1: A Fine-Grained Design. Example 2: Make the Orderline Objects Serializable. Summary.

6. Bottlenecks.

Why Bottlenecks Are Hard to Avoid. Synchronization Bottlenecks. Locking Bottlenecks. Objects and Locking. Deadlocks and Lock Ordering. Garbage Collection Bottlenecks. Distributed Garbage Collection. Summary.


7. Java Benchmarking Overview.

Java Benchmarks. Pendragon Software CaffeineMark 3.0. JMark 2.0. VolanoMark 2.1. SPECjvm98. Our Simple Benchmark. Summary.

8. An Application-Level Benchmark.

The BOB Benchmark. TPC-C Overview. BOB Structure. Running BOB. BOB Implementation. Benchmark Infrastructure. Benchmark Transactions. Benchmark Entities. Summary.


9. SanFrancisco and Performance.

SanFrancisco Overview. Foundation Layer. Foundation Object Model Base Classes. Business Object Lifecycle. Entity Lifecycle. Collections and Queries. Other Base Classes. Foundation Object Model Services. Common Business Objects Layer. Core Business Processes Layer. Useful References. Books About SanFrancisco. Additional Publications About SanFrancisco. IBM Redbooks About SanFrancisco. Summary.

10. Enterprise Java Beans and Performance.

J2EE Architecture and Technologies. Enterprise Java Beans. Choosing an Implementation. EJB Implementations and Performance. EJB Architecture and Performance. Session Beans. Entity Beans. Flavors of Entity Beans. Granularity of EJBs. Session Beans Versus Entity Beans. Features to Look for in an EJS. Summary.

11. CORBA and Java.

CORBA Overview. Java IDL. RMI-IIOP. Effect of RMI over IIOP on Performance. Summary.

12. Jini and Performance.

Jini Overview. Lookup. Discovery. Leasing. Remote Events. Transactions. Performance Considerations in Jini. Summary.


13. How Java Is Used.

Web Out. Web In. Application Glue. Database Up. Application Wrapper. Objects Down. Combination Approaches. Summary.

14. Performance Implications.

Web Out. Web In. Application Glue. Character Encoding and Endian. Accumulation of Remote Objects. Application Wrapper. Excessive Client Interaction. Capacity Limits. Reducing Client-Server Interactions. Database Up. Excessive Middleware Interactions. Objects Down. Excessive Client Interaction. Excessive Remote Object Interaction. Excessive Middleware Interaction. Memory Leaks and Object Retention. Excessive Garbage Collection. Summary.


15. System Tuning.

Memory and System Tuning. SanFrancisco Solutions. EJB Solutions. Database Tuning. Operating System Memory Allocation. Balancing Memory Requirements. Disk Configuration. Network Configuration. The Performance-Tuning Process. Summary.

16. Large-Scale Effects.

The Application and Its Environment. Memory. Processor. Input/Output. Software. Large-Scale Effects. SMP and Cluster Effects. Heap Allocation and Garbage Collection on SMP. Why Multiple Servers? Object Placement, Access, and Replication. Summary.

Appendix A: Machines Used.

Machine A. Machine B. Machine C.

show more

About Steven Jay Munroe

Steven L. Halter and Steven J. Munroe are both leaders on IBM's SanFrancisco Project, the world's largest and most comprehensive study of Java and performance in business development. Steven L. Halter is an expert in object persistence and object infrastructures, while Steven J. Munroe's background is in system architecture and design. Between them they hold sixteen U.S. patents.
show more