Overview
This course provides the process of performance tuning Java systems and eliminates all types of performance problems, including planning for performance, building a performance testing and tuning environment, tools, tuning methodology and an overview of how performance is affected by the runtime Java environment. This course is essential in understanding how to most effectively tune any Java application.
Prerequisites
Those with a basic understanding of object oriented systems and Java.
Audience
This course is designed for Administrators, QA team members, developers, architects, consultants, IT specialists.
What you will learn
After completing this course, the student should be able to:
- Describe the plan for performance management of the project
- Described when performance tuning will be required
- Tune the heap spaces and garbage collection for optimal performance
- Talks about minimize object creation
- To build a performance tuning environment and profiling
- How to use threads effectively
- Tuning JDBC
- Describe the I/O performance tuning
- How to understand which aspects of performance tuning are affected by various project phases and components
- Teaches you to work efficiently and effectively, resulting in code that is robust, maintainable, and fast
Course Duration
3 Days
Course outline
1. Introduction
- What Is Performance
- Planning For Performance
- A Tuning Strategy
- Different Aspects of Performance
- Setting Benchmarks
- Performance Measurement
2. Performance Analysis Tool
- Profiling
- New Garbage Collectors
- Method Calls
- Object-Creation Profiling
- Monitoring Memory Usage
- Client/Server Communications
3. JDK Garbage Collectors and Improvements
- New Garbage Collectors
- Fine-Tuning Java Garbage Collection Performance
- Big Heaps and Intimate Shared Memory
- Replacing JDK Classes
- Java HotSpot VM’s
- Better Optimizing Compilers
- Compile to Native Machine Code
- ZIP/JAR Files
4. Reduce Object Creation
- General Guideline
- Object-Creation Statistics
- Object Reuse
- Reference Objects
- Avoid Garbage Collection
- Initializing Objects
- Early and Late Initialization
5. Performance Effects of Strings
- Compile-Time Versus Runtime Resolution of Strings
- Conversions to Strings
- Strings VS Char Arrays
- String Comparisons and Searches
- Sorting Internationalized Strings
6.Optimizing the Use of Exceptions and Assertions
7. Tuning Control Structure
- Tuning Loops
- Exception-Terminated Loops
- Switch
- Recursion and Stacks
8. I/O Performance and Logging
- Improve I/O Performance
- Logging
- Improve File I/O Performance From Raw I/O
- Serialization
- Clustering Objects and Counting I/O Operations
- Compression
- New I/O
9. Avoiding Unnecessary Sorting Overhead
- An Efficient Sorting Framework
- Better Than O(nlogn) Sorting
10. Multi Threading
- Overview of Threading
- Race Conditions
- Deadlocks
- Synchronization Overhead
- Timing Multithreaded Tests
- Atomic Access and Assignment
- Thread Pools
- Load Balancing
11. Data Structures and Algorithms
- Selecting Data Structures(Java 2 Collection)
- Hashtables and HashMaps
- Optimizing Queries
- LinkedLists VS ArrayLists
- Cached Access
12. Distributed Computing
- Distributed-application bottlenecks
- Message Reduction
- Comparing Communications Layers
- Caching
- Aggregate Data Model(Batching)
- Communication Optimizations
- Distributed Garbage Collection
- Databases
- Web Services
13. The Performance Process
- During Design Analysis
- Design and Architecture
- Coding
- Testing
- Tuning After Deployment
- Tuning Class Libraries and Beans
14. Tuning in JDBC
- Measuring JDBC Performance
- JDBC Drivers Selection
- Connection Pooling
- Optimizing the Database Queries
- Caching
- Batching
- Transaction Optimization
Appendix A: Overview Of JEE Performance Turning
- Planning For Performance
- Tuning Presentation Tier
- Tuning Business Tier
- Tuning Resource Tier
- Tuning Integration Tier
|