Low Latency Programming in Java

Abstract

In this course, we present how to design and write low-latency applications.
The students will learn how to write blazing-fast programs and which frameworks/patterns are appropriate for this task.

Target Audience

Java Web Developers

Prerequisites

Experience with Java

Content

Advanced Threading Concepts:

  • The Java Memory Model
  • Atomic Classes
  • java.util.concurrent
  • Fork-join

GC and Reference Objects:

  • Understanding GC
  • Soft and Weak References
  • Monitoring

NIO/NIO.2:

  • Buffers API
  • Working with Direct Buffers
  • Channels
  • Selectors and Non-blocking
  • Async File APIs

Hardware-friendly Applications:

  • The Java Memory Model
  • Understanding CPU Caches (L1,L2,L3)
  • Writing Cache-Friendly Code
  • CPU Optimizations
  • GC Considerations
  • Memory Access Patterns
  • Using the Disruptor Library
  • Java 8 Classes (LongAdder, ConcurrentHashMap)
  • Memory Mapped Files
  • The Unsafe Class

JVM Performance:

  • Understanding Hotspot JIT Compilation
  • String and Performance
  • Exceptions and Performance
  • Benchmarking
  • Profiling and Monitoring

Design Considerations:

  • Designing fast Logging
  • Inter-Process Communication
  • Availability and Persistence
  • Selecting Frameworks from the Java-EcoSystem
  • Testing Low-Latency Applications

Duration

3 days

Enroll Now
Contact us
Share: