My Account Log in

3 options

Java 9 high performance / Mayur Ramgir and Nick Samoylov.

EBSCOhost Academic eBook Collection (North America) Available online

View online

Ebook Central College Complete Available online

View online

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Ramgir, Mayur, author.
Samoylov, Nick, author.
Language:
English
Subjects (All):
Performance.
Physical Description:
1 online resource (1 volume) : illustrations
Edition:
1st edition
Place of Publication:
Birmingham, England ; Mumbai, [India] : Packt Publishing, 2017.
System Details:
text file
Biography/History:
Ramgir Mayur: Mayur Ramgir has more than 16 years of experience in the software industry, working at various levels. He is a Sun Certified Java Programmer and Oracle Certified SQL Database Expert. He completed an MS in computational science and engineering at Georgia Tech, USA (rank 7th in the world for computer science), and an M. Sc. in multimedia application and virtual environments at University of Sussex, UK. He has also attended various universities for other degrees and courses, such as MIT for applied software security, and University of Oxford for system and software security. He is the CEO of a software company, Zonopact, Inc. headquartered in Boston, USA, which specializes in bringing innovative applications based on AI, robotics, big data, and more. He has single-handedly developed Zonopacts flagship product, Clintra (B2B-integrated AI-assisted business management software). He is also the inventor of two patent pending technologies, ZPOD (an automated cloud-based medical kiosk system) and ZPIC (an AI-enabled robotic in-car camera system). Apart from this, he is also a prolific business writer who has authored two international award-winning books, Unbarred Innovation: A Pathway to Greatest Discoveries and Evolve Like a Butterfly: A Metamorphic Approach to Leadership. He was featured on the TV and in print media, including Fox News, NBC News, CBS News, Fox Business, Bloomberg International TV, Forbes, Inc. magazine, Daily Mirror, and The Huffington Post. He is also a contributing author of New York Daily Newspaper, the Software Development Times magazine, Newsmax Finance, AlleyWatch, Singapore's top entrepreneurship magazine Young Upstarts, and several more. He is frequently invited as a guest lecturer at various technical and management schools. He has also been invited as a judge at an international innovation challenge competition (Living Talent) in Dubai in December 2017. Samoylov Nick: Nick Samoylov graduated from Moscow Institute of Physics and Technology, working as a theoretical physicist and learning to program as a tool for testing his mathematical models. After the demise of the USSR, Nick created and successfully ran a software company, but was forced to close it under the pressure of governmental and criminal rackets. In 1999, with his wife Luda and two daughters, he emigrated to the USA and has been living in Colorado since then, working as a Java programmer. In his free time, Nick likes to write and hike in the Rocky Mountains.
Summary:
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. We'll 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.
Contents:
Cover
Title Page
Copyright
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Table of Contents
Preface
Chapter 1: Learning Java 9 Underlying Performance Improvements
Introducing the new features of Java 9
Modular development and its impact
Quick introduction to modules
String operations performance
Compact string
The world of heap
Why bother compressing strings?
What did they do?
What is the escape route?
What is the performance gain?
Indify String Concatenation
Invokedynamic
Storing interned strings in CDS archives
Concurrency performance
Compiler improvements
Tiered Attribution
Ahead-of-Time compilation
Security manager improvements
Graphics rasterizers
Summary
Chapter 2: Identifying Performance Bottlenecks
CPU infrastructure
Memory utilization
Java heap
Java stack
Java heap versus stack memory
Escape analysis
Common memory problems
OutOfMemory
Mismanagement of object life cycle: java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: GC Overhead limit exceeded
java.lang.OutOfMemoryError: Permgen space
java.lang.OutOfMemoryError: Metaspace
java.lang.OutOfMemoryError: Unable to create new native thread
java.lang.OutOfMemoryError: request size bytes for reason
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
Out of memory: kill process or sacrifice child
StackOverFlow
Database operations
I/O operations
Network operations
WebSocket Client API
Chapter 3: Learning How to Troubleshoot Code
Measuring performance
Performance checklist
Basic principles of troubleshooting
Why some developers find troubleshooting difficult?
Setting up the environment for troubleshooting
Importance of error handling.
A basic try-catch-finally block and its usages
What are try-catch-finally blocks?
Usage of try-catch-finally blocks
Mistakes programmers make when using error handling
Why swallowing exception is bad?
Use of logging
Logging vs Debugging
What are the main components?
How to do logging?
What logging frameworks are available?
Java Util Logging
Log4j 2
Logback
Performance
Support
Ease of Use
Best use case for logging
Analyzing thread dump
What is a thread dump?
Benefits of thread dump analysis
How to collect a thread dump
How to analyze a thread dump
Best practices
Analyzing heap dump
What is a heap dump
Benefits of analyzing heap dumps
When do you analyze a heap dump
How to collect heap dump
How to analyze heap dump
Chapter 4: Learning How to Use Profiling Tools
Introducing profiling
Why a developer should use a profiling tool
The art of profiling
Profiling areas
CPU profiling
Memory profiling
Thread profiling
The different types of Java profiling tool
Jmap
VisualVM
JProfiler
XRebel
YourKit
JRockit
BTrace
AQtime
Reporting issues
Chapter 5: Understanding Garbage Collection and Making Use of It
Understanding the Java 9 garbage collector for top optimization
Garbage Collection
The principle of GC
Benefits and demerits of garbage collection
Unpredictability
GC methods
Reference counting
Space reduction
Cycles
Atomic tasks
GC in Java
Understanding the current Parallel GC
Generations
Heap sizing
Parallelism
Why parallelism?
The new G1 collector
A brief history
Impact on programming
Deep insight on G1GC
Comparing G1 collector to ParallelGC
Common points
The qualities of ParallelGC.
The qualities of G1GC
Concurrent mode failures
Understanding memory errors
Chapter 6: Optimizing Code with Microbenchmarking
The concept of microbenchmarking
Microbenchmarks in Java
Understanding the JMH
Setting up the JMH
Building up in the JMH
Benchmark modes in the JMH
Throughput measure
Time-based measures
Applying the JMH in Java projects
What is Maven?
Why use microbenchmarking?
The challenges associated with microbenchmarks
Wrong solutions from microbenchmarks
Wrong component use
Wrong hierarchy
Wrong memory use
Use of a specific environment
The benefits of using the JMH
Understanding the limitations of the JMH
Chapter 7: Speeding Up JSON Generation
A transparent understanding of JSON in Java
A brief history of JSON and examples
Understanding JSON generation
What is Javax.json?
JSON object model
JSON stream
What are events?
How does an event work?
Types in JSON for object modeling
Types in JSON for streaming API
JSON trees
Understanding the tree model
Converting CSV to JSON
Converting Excel to JSON
Understanding value trees
The benefits of using JSON
Chapter 8: Tools for Higher Productivity and Faster Application
The JShell tool usage
Creating a JShell session and setting context
JShell commands
Ahead-of-Time (AOT)
Static versus dynamic compilation
The AOT commands and procedures
Chapter 9: Multithreading and Reactive Programming
Prerequisites
Thread pools
Monitoring threads
Sizing thread pool executors
Thread synchronization
Tuning JVM
Reactive programming
Chapter 10: Microservices
Why microservices?
Building microservices
Container-less deployment
Self-contained microservices
In-container deployment
Summary.
Chapter 11: Making Use of New APIs to Improve Your Code
Filtering streams
Basic filtering
Using other stream operations for filtering
Stack-walking APIs
Stack analysis before Java 9
New better way to walk the stack
Convenience factory methods for collections
Why new factory methods?
The new factory methods in action
CompletableFuture in support of asynchronous processing
The CompletableFuture API overview
The CompletableFuture API enhancements in Java 9
The problem and the solution using Future
The solution with CompletableFuture
Other useful features of CompletableFuture
Stream API improvements
Index.
Notes:
Description based on online resource; title from PDF title page (EBC, viewed December 2, 2017).
ISBN:
9781787122307
1787122301
OCLC:
1017754247

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