1 option
High Performance with Java : Discover Strategies and Best Practices to Develop High Performance Java Applications / Edward Lavieri Jr.
- Format:
- Book
- Author/Creator:
- Lavieri, Edward, Jr., author.
- Language:
- English
- Subjects (All):
- Java (Computer program language).
- Physical Description:
- 1 online resource (307 pages)
- Edition:
- First edition.
- Place of Publication:
- Birmingham, England : Packt Publishing, [2024]
- Summary:
- Take your Java programming skills to the next level and learn to overcome real-world challenges to optimize application performance Key Features Leverage key features of the Java Virtual Machine to maximize runtime performance Unlock optimization strategies to effectively manage objects and memory use Apply your knowledge to utilize frameworks and libraries ripe for increasing program performance Purchase of the print or Kindle book includes a free PDF eBook Book Description Building high performance into your applications is key to creating an optimal user experience, although it is not the only consideration for the performant nature of your apps. High performance applications can lead to cost-effective resource utilization, especially when scalability and cloud computing are involved. They can also provide highly reliable systems that are easier to maintain. High Performance with Java begins by helping you explore the Java Virtual Machine (JVM) and understand how to push it to its limits to further optimize your programs. You'll take a hands-on approach to go through memory optimization strategies, input/output operations, concurrency, networking, as well as frameworks and libraries focused on performance. You'll also learn key strategies and best practices by using industry-relevant examples to architect scalable and resource-efficient applications. The concluding chapters provide valuable insights on optimizing your Java code when interacting with databases and show you how to leverage artificial intelligence (AI) for high performance Java applications.By the end of this book, you'll grasp the importance of developing high performance Java applications and gain practical experience in implementing key strategies to help ensure your Java applications perform optimally. What you will learn Explore optimization strategies for garbage collection and the JIT compiler Discover best practices when using data structures for high performance Test and compare various approaches to using loops Understand how and when to use object pooling Discern the difference between low-performance and high-performance algorithms Uncover strategies for object creation and immutability to improve performance Gain hands-on experience in avoiding memory leaks Who this book is for This book is for developers, software engineers, and software architects looking to take their Java skills to the next level. Aimed at individuals with a string grasp of Java fundamentals, this book is a practical guide to helping you write high-performing applications.
- Contents:
- Cover
- Title page
- Copyright and credits
- Contributors
- Table of Contents
- Preface
- Part 1: Code Optimization
- Chapter 1: Peeking inside the Java Virtual Machine
- Technical requirements
- How the JVM works
- More options with javap
- Garbage collection
- The garbage collection process
- Garbage collection algorithms
- Garbage collection optimizations
- JIT compiler optimizations
- Interpretation
- AOT compilation
- JIT compilation
- Summary
- Chapter 2: Data Structures
- Improving performance with lists
- Why use lists?
- Common list implementations
- High performance with lists
- Improving performance with arrays
- Array characteristics
- Implementing arrays
- High performance with arrays
- Improving performance with trees
- Examples of a tree structure
- High-performance considerations
- Improving performance with stacks and queues
- Implementing stacks
- Improving the performance of stacks
- Implementing queues
- Improving the performance of queues
- Improving performance with advanced data structures
- Hash tables
- Graphs
- Trie
- Heap
- Quad trees
- Octrees
- Bitsets
- Ropes
- Chapter 3: Optimizing Loops
- Types of loops
- A loop's impact on performance
- Loop optimization basics
- Loop unrolling
- Testing loops for performance
- Profiling tools and methodology
- Benchmarking and testing strategies
- Case studies and examples
- Nested loops
- Introduction to nested loops
- Loop fusion in nested loops
- Parallelizing nested loops
- Nested loop vectorization
- Chapter 4: Java Object Pooling
- Jumping into the object pool
- Database example
- Implementing an object pool in Java
- Advantages and disadvantages of object pooling
- Advantages
- Disadvantages.
- Performance testing
- Designing a performance test
- Implementing a performance test
- Analyzing the results
- Chapter 5: Algorithm Efficiencies
- Algorithm selection
- Selection process
- Case study
- Evolving trends
- Low time complexity
- Strategies for reducing time complexity
- Common pitfalls
- Testing algorithms for efficiency
- Importance of testing
- Preparing for algorithm efficiency testing
- Conducting the tests
- Post-test actions
- Part 2: Memory Optimization and I/O Operations
- Chapter 6: Strategic Object Creation and Immutability
- Minimizing object creation
- Java object life cycle
- Memory
- Object pooling
- Initialization approaches
- Overhead reduction
- Object immutability
- Immutability overview
- Best practices
- Performance advantages
- Custom classes
- String classes
- Garbage collection implications
- Object cloning
- Design patterns
- Singleton pattern
- Factory pattern
- Chapter 7: String Objects
- Proper string pooling
- String interning
- Code examples
- String pooling for database queries
- Lazy initialization
- Additional string operation strategies
- Concatenation
- Regular expressions
- Large text files
- Chapter 8: Memory Leaks
- Proper referencing
- An introduction to references
- Memory leak identification
- Memory leak avoidance strategies
- Listeners and loaders
- Event listeners
- Class loaders
- Caching and threads
- Caching strategies
- Thread management
- Java concurrency utilities
- Part 3: Concurrency and Networking
- Chapter 9: Concurrency Strategies and Models
- Concurrency models.
- Thread-based model
- The message passing model
- The Reactive model
- Multithreading
- Thread life cycles
- Multithreading best practices
- Synchronization
- Non-blocking algorithms
- Chapter 10: Connection Pooling
- Connection pooling concepts
- Advantages of connection pooling
- Challenges of connection pooling
- Implementing connection pools
- Connection pool libraries
- Setting up a connection pool
- Integrating connection pools
- Monitoring connection pools
- Best practices with connection pools
- Connection pool sizing
- Handling connection leaks
- Connection pool security
- Advanced topics
- Chapter 11: Hypertext Transfer Protocols
- Introduction to HTTP
- HTTP core components
- Java and HTTP
- Java web applications
- Java web application architecture
- Key technologies
- Steps for creating a simple Java web application
- Using HTTP in Java
- API integration
- Security considerations
- Performance optimization
- Part 4: Frameworks, Libraries, and Profiling
- Chapter 12: Frameworks for Optimization
- Asynchronous input/output
- Advantages and best practices
- Implementing AIO
- Buffered input/output
- Implementing buffered input/output
- Batch operations
- Implementing batch operations
- Frameworks for microservices
- Implementing microservices frameworks
- Frameworks for cloud-native applications
- Implementing a cloud-native application
- Case studies and performance analysis
- Case studies
- Performance analysis
- Chapter 13: Performance-Focused Libraries
- Java Microbenchmark Harness
- Key features.
- Adding JMH libraries to your IDE
- Writing benchmarks
- Running benchmarks
- Analyzing results
- Use cases
- Netty
- Core features
- Performance considerations
- Implementation
- FasterXML Jackson
- Other notable libraries
- Agrona
- Eclipse Collections
- Guava
- Chapter 14: Profiling Tools
- An introduction to profiling tools
- The importance of profiling in performance tuning
- Types of profiling tools and their uses
- Profilers bundled in the JDK
- JVisualVM
- JMC
- IDE-embedded profilers
- The IntelliJ IDEA profiler
- Eclipse's Test and Performance Tools Platform
- NetBeans Profiler
- Additional profilers
- YourKit Java Profiler
- JProfiler
- VisualVM plugins and extensions
- A comparative analysis of profiling tools
- Performance overhead
- Accuracy
- Ease of use
- Integration
- Cost and licensing considerations
- The best use cases for each tool
- Scoring our profiling tools
- Practical profiling strategies
- Identifying performance bottlenecks
- Profiling in development versus production
- Continuous profiling
- Case study 1 - profiling a large enterprise application
- Case study 2 - performance tuning in a microservices architecture
- Case study 3 - profiling and optimizing a high-throughput system
- Future trends in Java profiling
- Advances in profiling tools
- Integration with AI and machine learning
- Emerging standards and best practices
- Part 5: Advanced Topics
- Chapter 15: Optimizing Your Database and SQL Queries
- Database design
- Schema principles
- Indexing
- Partitioning and sharding
- Query optimizations
- Query execution
- Advanced SQL techniques
- Additional strategies
- Fine-tuning
- Database performance monitoring
- Database maintenance.
- Case studies
- Case study 1
- Case study 2
- Case study 3
- Chapter 16: Code Monitoring and Maintenance
- APM tools
- APM tool overview
- APM tool key features
- Popular APM tools
- APM tool best practices
- Code reviews
- Peer review processes
- Logging
- Logging frameworks
- Analyzing log data
- Monitoring and alerting
- Monitoring system setup
- Alert configuration
- Alert and incident response
- Maintenance strategies
- Documentation and knowledge management
- Refactoring strategies
- Legacy code
- Chapter 17: Unit and Performance Testing
- Unit testing
- Frameworks
- Writing unit tests
- Pitfalls
- TDD
- Performance testing
- Types and tools
- Overarching strategies
- Integrating unit and performance testing
- Chapter 18: Leveraging Artificial Intelligence (AI) for High-Performance Java Applications
- Introduction to AI in Java
- AI's relevance to high-performance Java applications
- Current trends
- Future directions
- AI for performance optimization
- Code optimization and performance tuning
- Predicting performance bottlenecks
- Abbreviated case study
- AI-powered monitoring and maintenance
- Anomaly detection
- AI-based logging
- AI integration
- Ethical and practical considerations
- Epilogue
- Index
- Other Books You May Enjoy.
- Notes:
- Includes bibliographical references and index.
- Description based on publisher supplied metadata and other sources.
- Description based on print version record.
- Other Format:
- Print version: Jr., Edward Lavieri High Performance with Java
- ISBN:
- 9781835462553
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.