Book Image

Java EE 8 High Performance

By : Romain Manni-Bucau
Book Image

Java EE 8 High Performance

By: Romain Manni-Bucau

Overview of this book

The ease with which we write applications has been increasing, but with this comes the need to address their performance. A balancing act between easily implementing complex applications and keeping their performance optimal is a present-day need. In this book, we explore how to achieve this crucial balance while developing and deploying applications with Java EE 8. The book starts by analyzing various Java EE specifications to identify those potentially affecting performance adversely. Then, we move on to monitoring techniques that enable us to identify performance bottlenecks and optimize performance metrics. Next, we look at techniques that help us achieve high performance: memory optimization, concurrency, multi-threading, scaling, and caching. We also look at fault tolerance solutions and the importance of logging. Lastly, you will learn to benchmark your application and also implement solutions for continuous performance evaluation. By the end of the book, you will have gained insights into various techniques and solutions that will help create high-performance applications in the Java EE 8 environment.
Table of Contents (12 chapters)

Preface

Java has been a mainstream technology for backend development for many years. Part of the reason behind this is its high stability in terms of APIs, hard backward-compatibility rules, offering a very stable and reliable backbone for any professional software, and its good performance.

The Java EE platform gives developers a flexible and powerful API that allows them to concentrate on the features more than on the technical challenges already solved by the platform. However, it doesn't mean that you should use it blindly and forget all about the work the container does for you; it would lead to a poorly behaving and unresponsive application.

When it comes to performance, Java EE is well-designed to let you get metrics, instrument your application, find any potential bottlenecks, enhance your application's performance to reach your expected Service Level Agreements (SLAs), and satisfy your customers and end users.

However, performance is often thought of as something we look at once the application is completely developed. This can be true for standalone applications, which are easy to optimize as they are self-contained. However, with the advent of microservices and distributed applications, you need to think of performance as a continuous process in order to avoid having to redevelop your application afterwards.

That is all this book is about—giving you the needed tools to be able to work on the performance of your Java EE application, ensure you benefit from the simplicity of the Java EE API without abusing of them and having bad surprises, ensure you think upfront of the whole application flow and not only on a subpart of the full system which can lead to local optimizations and global tragedies and finally, ensure you can continuously control your performances and thus work smoothly on them during all the development phase and succeed to deliver a high quality product.