Effectively reading and understanding existing code is a developer’s superpower. In this book, you’ll master techniques for code profiling, advanced debugging, and log evaluation to find and fix bugs and performance problems.
In Troubleshooting Read, debug, and optimize JVM applications you will learn how
Determine what code does the first time you see it Expose code logic problems Evaluate heap dumps to find memory leaks Monitor CPU consumption to optimize execution Use thread dumps to find and solve deadlocks Easily follow a service-oriented or microservices system Properly use logging to better understand Java app execution Use Java debuggers efficiently
Searching for bugs, detangling messy legacy code, or evaluating your codebase for new features sucks up much of a developer's time. Troubleshooting Read, debug, and optimize JVM applications teaches code investigation techniques that will help you efficiently understand how Java apps work, how to optimize them, and how to fix the bugs that break them. You’ll go from the basics of debugging to advanced methods for locating problems in microservices architectures, and save yourself hours—or even days—of time. Each new technique is explained with lively illustrations and engaging real-world examples.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the technology Over the course of your career, you’ll spend far more time reading code than you will writing it. The code investigation skills in this book will radically improve your efficiency in understanding and improving Java applications.
About the book Troubleshooting Read, debug, and optimize JVM applications presents practical techniques for exploring and repairing unfamiliar code. In it, you’ll learn timesaving practices for discovering hidden dependencies, discovering the root causes of crashes, and interpreting unexpected results. Go beyond profiling and debugging and start understanding how Java applications really work.
What's inside
Determine what code does the first time you see it Evaluate heap dumps to find memory leaks Monitor CPU consumption to optimize execution Use thread dumps to find and solve deadlocks Uncover glitches in code logic Locate intermittent runtime problems
About the reader For intermediate Java developers.
About the author Laurentiu Spilca is a skilled Java and Spring developer and an experienced technology instructor. He is the author of Spring Start Here and Spring Security in Action .
Table of Contents PART 1 - THE BASICS OF INVESTIGATING A CODEBASE 1 Revealing an app’s obscurities 2 Understanding your app’s logic through debugging techniques 3 Finding problem root causes using advanced debugging techniques 4 Debugging apps remotely 5 Making the most of Auditing an app’s behavior PART 2 - DEEP ANALYSIS OF AN APP’S EXECUTION 6 Identifying resource consumption problems using profiling techniques 7 Finding hidden issues using profiling techniques 8 Using advanced visualization tools for profiled data 9 Investigating locks in multithreaded architectures 10 Investigating deadlocks with thread dumps 11 Finding memory-related issues in an app’s execution PART 3 - FINDING PROBLEMS IN LARGE SYSTEMS 12 Investigating apps’ behaviors in large systems
For a complete beginner this books gives nice insights but is very bloated with unneeded text.
In general, I was very disappointed by this book as I like the author very much. In my opinion, this whole book which I needed 4 days to read could be a 2 part blogpost of avg read time 15mins each.
This book provides a comprehensive introduction to essential troubleshooting tools and techniques, including the use of IDE breakpoints, logging basics, and employing profilers to sample or profile program executions. While it offers a broad overview that is perfect for novices looking to familiarize themselves with available tools and methods for Java troubleshooting, it may not be very useful for experienced engineers due to its shallow coverage of each topic. It is more of a guide to understanding what's out there rather than an in-depth discussion.
Regardless of whether you are a seasoned engineer, Junior Developer or a Principal Architect, you must read this book if you want to have an in-depth understanding of the debugging processes, principles and techniques, within Java applications. This book will give you an entire picture of what to debug, when and how; what is sampling, what does profiling do, and how you should use these techniques with best practices. Unreservedly recommended.
This is one of those books that i would like to have read before investigating problems in Java application that i have worked on. It makes use of techniques such as debugging, logging and profiling to accelerate the discovery of bugs. It is a must read for every Java dev either jr or sr. I really enjoy the reading.
Even if you use all possible technics, helps and so, the reality is that a bug could arrive in your Java development. What happens then, panic to correct the bug. Be in good company with this book. You could read it, before the bug happens!