|

Addison-Wesley / Prentice Hall

Computer Science

My Instructor Resource Center :  Log in or request access

Enterprise Java Performance
Steven L. Halter
Steven J. Munroeboth of IBM Software Systems Division, Rochester, Minnesota

ISBN-10: 0130172960
ISBN-13:  9780130172969

Publisher:  Prentice Hall
Copyright:  2001
Format:  Paper; 432 pp
Published:  08/17/2000
Status: Out of Print


Suggested retail price: $49.99
  We're sorry, this product is no longer available. Please contact your Pearson rep if you are using this product and need instructor resources.



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.

  • Coverage of using Java for Web and open-computing initiatives in the enterprise.
  • Concise and complete program samples.
    • Illustrates each concept pertaining to COM+ with examples that are easy for students to use and understand. Ex.___

  • Emphasis on server side applications and application server platforms.
  • The “DO”s and “DON'Ts” of using Java for Enterprise applications.
    • Offers students advice on how to prevent making performance design mistakes in this new environment. Ex.___

  • Accessible approach.
    • Presents topics to students in a logical and straightforward manner that enhances comprehension. Ex.___

I. INTRODUCTION.

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.

II. PERFORMANCE PHYSICS.

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.

III. BENCHMARKING.

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.

IV. APPLICATION ENVIRONMENTS.

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.

V. APPLICATION MODELS.

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.

VI. SCALING UP.

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.

Index.

View a Sample Chapter PDF:/samplechapter/0130172960.pdf

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.

  • Java performance for real business success
  • Practical, large-scale programming
  • Illustrates common Java pitfalls
  • Includes coverage of CORBA and JINI

Technical Editors: Peter van der Linden, best-selling author of Just Java and Stephen R. Pietrowicz, National Center for Supercomputing Applications, University of Illinois, Urbana-Champaign

"This is the sort of book that I look for as an advanced programmer. There just aren't enough of these types of books out there."
—Stephen R. Pietrowicz, National Center for Supercomputing Applications, University of Illinois, Urbana-Champaign

When your enterprise solutions are written in Java, system performance equals organizational productivity.

As Java is exploding into business environments, programmers require a new approach to encompass enterprise-wide thinking. With today's distributed computing environments magnifying even minor performance pitfalls, large-scale tuning can make the difference between success and just getting by. Steven L. Halter and Steven J. Munroe, who have been working with Java from its very beginning, bring their experiences from the IBM SanFrancisco Project to this unique book.

Their expertise provides a brilliant guide to the complexity of running business code on a massive system with a large, heterogeneous user population. By exploring performance issues from the ground up, they show you how to design a framework to withstand the changing demands of a growing business. Right from the start, you'll get general concepts and specific tips on improving enterprise Java performance, illustrated with actual Java code that you can put to work for you. Just some of the technologies included are: JVM/JIT, SanFrancisco, Enterprise JavaBeans, CORBA, and Jini. Real Java code examples illustrate:

  • Performance theory
  • Performance obstacles
  • Local/remote issues
  • Granularity
  • Benchmarking
  • System tuning
  • Effects of scale
  • SanFrancisco
  • Enterprise JavaBeans
  • CORBA

Interwrite Personal Response System
EduCue, Addison-Wesley & Benjamin Cummings
©2004 | Prentice Hall | Electronic Supplement | Instock
ISBN-10: 0321267354 | ISBN-13: 9780321267351


Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.