Pragmatic Performance Engineering (3 Days)

Martin Thompson

Martin Thompson

@mjpt777

High Performance Gangster

Martin is a Java Champion with over 2 decades of experience building complex and high-performance computing systems. He is most recently known for his work on Aeron and SBE. Previously at LMAX he was the co-founder and CTO when he created the Disruptor. Prior to LMAX Martin worked for Betfair, three different content companies wrestling with the world largest product catalogues, and was a lead on some of the most significant C++ and Java systems of the 1990s in the automotive and finance domains.

What the attendees will learn

On this course you will learn how to develop software in Java with performance as a first class quality attribute. The quality of software performance is measured in terms of throughput, response time, and scalability in the context of resource utilisation. The major resources are networking, storage, memory, and CPU - including the abstractions we access them including operating systems, virtual machines, and core libraries.

Good performance is the result of software that utilises the computing resources in an efficient and sympathetic manner. The course will cover some fundamental theory and then apply it in the context of each of the computing resources. We will write tests to exercise each resource so we can measure performance for usage patterns and guide the development by profiling to understand costs.

The computing resources do not exist in isolation. Systems theory comes into play when they interact based on the demands of the software. We will introduce a methodology to identify bottlenecks and then change code to balance utilisation so that the throughput, response time, and scalability can be improved for a whole system.

Requirements

-Laptop capable of running at least 4 threads concurrently, i.e. dual core with Hyperthreading enabled

-Linux operating system installed.

Workshop plan

 

Understanding Modern Hardware

  • Cache Sub-Systems
  • CPU Pipelines & Instruction Processing
  • Main Memory
  • PCI-e and NUMA Interconnects
  • Hard Disk Drives
  • Solid State Drives
  • Networking

 

Computing Resource Fundamentals

  • Network Latency & Throughput
  • Memory Latency & Throughput
  • Storage Latency & Throughput
  • Locks and Condition Variables

 

Linux Operating System Fundamentals

  • Virtual Memory Management
  • Scheduling
  • File Systems
  • Networking

 

Java Virtual Machine Fundamentals

  • JIT Compilation
  • Garbage Collectors

 

Performance Testing Theory

  • Statistics 101
  • Big O Notation & Algorithms
  • Clean Room Experiments
  • Realistic Test Cases
  • Micro Benchmarking
  • Concurrent Testing
  • Service Level Testing

 

Profiling

  • Interpreting a Profile
  • CPU Utilisation
  • Object Allocation and Heap Usage
  • Lock Contention
  • Garbage Collection
  • Operating System Tracing
  • Hardware Performance Counters

 

Development Practices

  • Data Representations
  • Clean Code and Anti-Patterns
  • Performance Testing and CI
  • Team Culture
  • Getting the balance right
  • Telemetry and Instrumentation

Pragmatic Performance Engineering (3 Days)


Date and time:

Monday 21st -Wednesday 23rd

9 am-5 pm and lunch break from 12:30 pm until 1:30 pm

Topics:

Java performance

Target audience roles:

Attendees:

24

Included:


1,999

Main topics

  • Distributed Systems
  • DevOps & Architectures
  • Functional Programming
  • Big Data in the Business
  • Data Visualisation
  • IoT & Embedded

La Térmica, Av. de los Guindos 48, 29004 | Málaga, Spain


info@jonthebeach.com


23rd-25th May 2018

Take a look to previous editions