My Account Log in

1 option

High Performance with Java : Discover Strategies and Best Practices to Develop High Performance Java Applications / Edward Lavieri Jr.

Ebook Central College Complete Available online

View online
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.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account