Skip to content
You are not logged in |Login  
     
Record:   Prev Next
Resources
More Information
Bestseller
BestsellerE-book
Author Manni-Bucau, Romain.

Title Java EE 8 High Performance : Master techniques such as memory optimization, caching, concurrency, and multithreading to achieve maximum performance from your enterprise applications.

Publication Info. Birmingham : Packt Publishing, 2018.

Item Status

Description 1 online resource (344 pages)
Physical Medium polychrome
Description text file
Summary The ease with which we write an application has been increasing, but with increasingly complex application come the need to address their performance. A balancing act between implementing complex applications easily and keeping its performance optimum is need of the hour. In this book we explore how to achieve this crucial balance while ...
Contents Cover -- Title Page -- Copyright and Credits -- Dedication -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Money -- The Quote Manager Application -- Setting up the environment -- The application architecture -- Application project highlights -- The build -- The persistence layer -- The service layer -- The JAX-RS layer -- The WebSocket layer -- Provision some data -- Application summary -- The application business -- The application design -- The application server -- Testing the application -- Get a quote price the JAX-RS way -- Get the price, the WebSocket way -- Setting up MySQL -- Conclusion -- Summary -- Chapter 2: Looking Under the Cover -- What is This EE Thing? -- Context and Dependency Injection -- what did you do to my beans? -- IoC -- a pretty simple example -- The main features of CDI -- Injections -- Scopes -- Interceptors/decorators -- Events -- Dynamic lookups -- JAX-RS -- the servlet router -- The router -- Marshalling -- Filter and interceptors -- @Suspended or asynchronous operation -- JPA -- the database link -- From JPA to the database -- Model and implications -- The Java Transaction API -- Server resources -- DataSource configuration -- Java EE and performances -- Ensure you know the server -- Ensure you know your application -- Ensure you know your resources -- Summary -- Chapter 3: Monitor Your Application -- Java tools to know what my application is doing -- The jcmd command -- the small command line utility that does a lot -- Thread.print -- Memory -- JVisualVM -- the UI for JVM monitoring -- How to connect remotely -- Java Mission Control -- GlassFish ad hoc monitoring -- Libraries monitor your application -- Counters, gauges, timers, and more -- Instrumenting the code -- CDI instrumentation -- Implementing your own configurable monitoring interceptor.
Javaagent -- a complex but powerful instrumentation -- Sirona javaagent -- SQL Monitoring -- Data aggregation -- Tracing -- APM -- Summary -- Chapter 4: Application Optimization -- Memory Management and Server Configuration -- Java and the memory -- Garbage collector -- Garbage collector algorithms -- The serial collector -- Parallel and parallel compacting collectors -- Concurrent Mark Sweep (CMS) -- Garbage First (G1) -- Common memory settings -- Debugging GC behavior -- Heap dump -- Java EE and the resources -- DataSource -- Java EE and pools -- Java EE and HTTP pools -- Java EE implicit features -- Summary -- Chapter 5: Scale Up -- Threading and Implications -- Java EE threading model -- Thread data and consistency -- Concurrent data access -- Java and thread safety -- Synchronized -- Locks -- java.util.concurrent -- The volatile data -- Java EE and threads -- CDI asynchronous events -- EJB @Asynchronous -- EE concurrency utilities for Java EE -- ManagedExecutorService -- ManagedScheduledExecutorService -- Java EE threads -- ContextService -- EJB @Lock -- HTTP threads -- Server side -- Client side -- Reactive programming and Java EE -- Message passing and Java EE -- Summary -- Chapter 6: Be Lazy -- Cache Your Data -- Caching challenges -- How does the cache work? -- The cache key -- Eviction policy -- Least Recently Used (LRU) -- First In First Out (FIFO) -- Random -- Least Frequently Used (LFU) -- Cache eviction trigger -- Cache storage -- memory or not -- Consistency of the data -- HTTP and caching -- Cache-Control -- ETag -- Vary -- HTTP caching and the Java EE API -- HTTP 2 promise -- JCache -- the standard cache of Java EE -- Setting up JCache -- Programmatic API -- JCache configuration -- CDI integration -- Cache configuration -- @CacheDefaults -- Cache key -- Cache once -- Summary -- Chapter 7: Be Fault-Tolerant -- It will fail, no doubt!
Load balancing -- pick the best one -- Transparent load balancing -- client versus server -- Common strategies -- The round-robin algorithm -- Random load balancing -- Link to failover -- Sticky session -- The scheduling algorithm -- Load balancing or proxy -- additional features -- Failover -- Switching to another system -- Local fallback -- Fallback code structure -- Microprofile to the rescue -- Failover extension -- Fallback handling -- caching, an alternative solution -- Circuit breaker -- Bulk head -- Timeouts -- Timeouts for code without timeouts -- Summary -- Chapter 8: Loggers and Performances -- A Trade-Off -- I log, you log, they log -- Logging frameworks and concepts -- Logger -- Logger Factory -- LogRecord -- Handler -- Filter -- Formatter -- Level -- Logging invocations -- Filters -- Formatters -- Using handlers -- Logging components and Java EE -- Logging patterns -- Testing your level -- Using templates in your messages -- Asynchronous or not? -- Logging implementations -- which one to pick -- Logging facade -- the good bad idea -- Logging frameworks -- Log4j -- Log4j2 -- Logback -- JUL -- Choosing an implementation -- Summary -- Chapter 9: Benchmarking Your Application -- Benchmarking -- validating your application against your SLA -- Benchmark, benchmark, benchmark -- Preparing your benchmark -- Defining the benchmark criteria -- Defining the metric -- Defining acceptance criteria -- Defining the scenario -- Defining the environment -- The machines -- The network -- Databases and remote services -- The server -- Automatize your scenarios -- JMeter -- Gatling -- Other tools -- Ensuring you have support -- Time boxing your optimization benchmark -- Installing and resetting procedures -- Benchmark iterations -- Iterating -- Changing a single setting at a time -- Resetting any state between runs -- Warming up your system -- After your benchmark.
Writing a report -- Updating your default configurations -- Reviewing the conclusions -- Enriching your project backlog -- Summary -- Chapter 10: Continuous Performance Evaluation -- Writing performance tests -- the pitfalls -- Writing performance tests -- JMH -- the OpenJDK tool -- Writing a benchmark with JMH -- The state -- Creating your first JMH benchmark -- BlackHole to be a star -- Running the benchmarks -- Integrating JMH with JUnit -- ContiPerf -- Arquillian and ContiPerf -- the diabolic pair -- JMeter and build integration -- Gatling and continuous integration -- Deploying your (benchmark) application -- Continuous integration platform and performance -- Summary -- Another Book You May Enjoy -- Index.
Local Note eBooks on EBSCOhost EBSCO eBook Subscription Academic Collection - North America
Subject Java (Computer program language)
Java (Computer program language)
Application software -- Development.
Application software -- Development.
Computers -- Systems Architecture -- Distributed Systems & Computing.
Computers -- Programming Languages -- General.
Programming & scripting languages: general.
Distributed systems.
Computers -- Programming Languages -- Java.
Genre/Form Electronic books.
Other Form: Print version: Manni-Bucau, Romain. Java EE 8 High Performance : Master techniques such as memory optimization, caching, concurrency, and multithreading to achieve maximum performance from your enterprise applications. Birmingham : Packt Publishing, ©2018
ISBN 9781788472159 (electronic book)
1788472152 (electronic book)
178847306X
9781788473064
Standard No. 9781788473064