• Complain

Mayur Ramgir - Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More

Here you can read online Mayur Ramgir - Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2017, publisher: Packt Publishing, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Mayur Ramgir Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More
  • Book:
    Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More
  • Author:
  • Publisher:
    Packt Publishing
  • Genre:
  • Year:
    2017
  • Rating:
    5 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

Best practices to adapt and bottlenecks to avoid

About This Book
  • Tackle all kinds of performance-related issues and streamline your development
  • Master the new features and new APIs of Java 9 to implement highly efficient and reliable codes
  • Gain an in-depth knowledge of Java application performance and obtain best results from performance testing
Who This Book Is For

This book is for Java developers who would like to build reliable and high-performance applications. Prior Java programming knowledge is assumed.

What You Will Learn
  • Work with JIT compilers
  • Understand the usage of profiling tools
  • Generate JSON with code examples
  • Leverage the command-line tools to speed up application development
  • Build microservices in Java 9
  • Explore the use of APIs to improve application code
  • Speed up your application with reactive programming and concurrency
In Detail

Finally, a book that focuses on the practicalities rather than theory of Java application performance tuning. This book will be your one-stop guide to optimize the performance of your Java applications.

We will begin by understanding the new features and APIs of Java 9. You will then be taught the practicalities of Java application performance tuning, how to make the best use of garbage collector, and find out how to optimize code with microbenchmarking. Moving ahead, you will be introduced to multithreading and learning about concurrent programming with Java 9 to build highly concurrent and efficient applications. You will learn how to fine tune your Java code for best results. You will discover techniques on how to benchmark performance and reduce various bottlenecks in your applications. Well also cover best practices of Java programming that will help you improve the quality of your codebase.

By the end of the book, you will be armed with the knowledge to build and deploy efficient, scalable, and concurrent applications in Java.

Style and approach

This step-by-step guide provides real-world examples to give you a hands-on experience.

**

Mayur Ramgir: author's other books


Who wrote Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More? Find out the surname, the name of the author of the book and a list of all author's works by series.

Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Appendix A. Assessment Answers
Lesson 1: Learning Java 9 Underlying Performance Improvements

Question Number

Answer

tool

True

Lesson 2: Tools for Higher Productivity and Faster Application

Question Number

Answer

Ahead-of-Time

False

Lesson 3: Multithreading and Reactive Programming

Question Number

Answer

calculateAverageSqrt()

False

RxJava

Lesson 4: Microservices

Question Number

Answer

Vertx

False

1,2

True

Lesson 5: Making Use of New APIs to Improve Your Code

Question Number

Answer

java.util.streams.Stream

True

True

Chapter 1. Learning Java 9 Underlying Performance Improvements

Just when you think you have a handle on lambdas and all the performance-related features of Java 8, along comes Java 9. What follows are several of the capabilities that made it into Java 9 that you can use to help improve the performance of your applications. These go beyond byte-level changes like for string storage or garbage collection changes, which you have little control over. Also, ignore implementation changes like those for faster object locking, since you don't have to do anything differently and you automatically get these improvements. Instead, there are new library features and completely new command-line tools that will help you create apps quickly.

In this lesson, we will cover the following topics:

  • Modular development and its impact on performance
  • Various string-related performance improvements, including compact string and indify string concatenation
  • Advancement in concurrency
  • Various underlying compiler improvements, such as tiered attribution and Ahead-of-Time ( AOT ) compilation
  • Security manager improvements
  • Enhancements in graphics rasterizers
Introducing the New Features of Java 9

In this lesson, we will explore many under the cover improvements to performance that you automatically get by just running your application in the new environment. Internally, string changes also drastically reduce memory footprint requirements for times when you don't need full-scale Unicode support in your character strings. If most of your strings can be encoded either as ISO-8859-1 or Latin-1 (1 byte per character), they'll be stored much more efficiently in Java 9. So, let's dive deep into the core libraries and learn the underlying performance improvements.

Modular Development and Its Impact

In software engineering, modularity is an important concept. From the point of view of performance as well as maintainability, it is important to create autonomous units called modules . These modules can be tied together to make a complete system. The modules provides encapsulation where the implementation is hidden from other modules. Each module can expose distinct APIs that can act as connectors so that other modules can communicate with it. This type of design is useful as it promotes loose coupling, helps focus on singular functionality to make it cohesive, and enables testing it in isolation. It also reduces system complexity and optimizes application development process. Improving performance of each module helps improving overall application performance. Hence, modular development is a very important concept.

I know you may be thinking, wait a minute, isn't Java already modular? Isn't the object-oriented nature of Java already providing modular operation? Well, object-oriented certainly imposes uniqueness along with data encapsulation. It only recommends loose coupling but does not strictly enforce it. In addition, it fails to provide identity at the object level and also does not have any versioning provision for the interfaces. Now you may be asking, what about JAR files? Aren't they modular? Well, although JARs provide modularization to some extent, they don't have the uniqueness that is required for modularization. They do have a provision to specify the version number, but it is rarely used and also hidden in the JAR's manifest file.

So we need a different design from what we already have. In simple terms, we need a modular system in which each module can contain more than one package and offers robust encapsulation compared to the standard JAR files.

This is what Java 9's modular system offers. In addition to this, it also replaces the fallible classpath mechanism by declaring dependencies explicitly. These enhancements improve the overall application performance as developers can now optimize the individual self-contained unit without affecting the overall system.

This also makes the application more scalable and provides high integrity.

Let's look at some of the basics of the module system and how it is tied together. To start off with, you can run the following commands to see how the module system is structured:

$java --list-modules
If you are interested in a particular module you can simply add the module - photo 1

If you are interested in a particular module, you can simply add the module name at the end of the command, as shown in the following command:

$java --list-modules java.base
The earlier command will show all the exports in packages from the base module - photo 2

The earlier command will show all the exports in packages from the base module. Java base is the core of the system.

This will show all the graphical user interface packages. This will also show requires which are the dependencies:

$java --list-modules java.desktop
So far so good right Now you may be wondering I got my modules developed but - photo 3

So far so good, right? Now you may be wondering, I got my modules developed but how to integrate them together? Let's look into that. Java 9's modular system comes with a tool called JLink . I know you can guess what I am going to say now. You are right, it links a set of modules and creates a runtime image. Now imagine the possibilities it can offer. You can create your own executable system with your own custom modules. Life is going to be a lot more fun for you, I hope! Oh, and on the other hand, you will be able to control the execution and remove unnecessary dependencies.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More»

Look at similar books to Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More»

Discussion, reviews of the book Java 9 High Performance: Practical Techniques and Best Practices for Optimizing Java Applications Through Concurrency, Reactive Programming, and More and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.