JVM Performance and Optimization for Scala Engineers

Learn techniques for writing performant Scala code and effective use of tools for analyzing performance.

Book a Training

Overview

The JVM is a rock-solid, battle-proven platform for developing and deploying applications. Thousands of engineering years have been invested into the facilities available on it, resulting in sophisticated garbage collection and just-in-time compilation mechanisms. The interaction between this platform and our applications is nuanced and often misunderstood; more so when using the Scala programming language.

In this 2 day workshop, the participants will learn about the two major runtime mechanisms of the JVM affecting performance - the JIT compiler and the garbage collector - and how they interact with applications written in the Scala programming language; techniques for writing performant Scala code and effective use of tools for analyzing performance.

Are you interested in attending a private training course?

Register for Private Training

Are you interested in attending a public training course?

Register for Public Training

Who Should Attend

Engineers, SREs and tech leads responsible for production Scala applications.

Prerequisites

Basic knowledge of the Scala programming language and the JVM; basic experience running Scala applications in production.

Topics

  • Overview of the JVM
  • Garbage collection on the JVM
  • Types of garbage collectors and choosing a garbage collector for a workload
  • Analyzing allocations in Scala code
  • Writing Scala code that is lean on allocations
  • Analyzing bytecode to pinpoint allocations
  • Monitoring garbage collector performance at runtime
  • Understanding JIT compilation on the JVM
  • Benchmarking code using JMH
  • Analyzing JIT behaviour at runtime
  • Writing JIT-friendly Scala code
  • Using Yourkit to monitor JVM performance at runtime (and on Kubernetes)
TESTIMONIAL
With Ziverge's tech leadership, Hunters was able to tackle challenges and technologies that in normal cases would be inaccessible for a young startup. Ziverge's vast experience in designing complex data pipelines was an amazing shortcut for us; combined with its holistic approach around training, team building, documentation, etc. Ziverge is a true game-changer.
Uri May
CEO Hunters.ai

Related Courses

Stream Processing with Scala

Learn how to use stream processing in Scala for writing reactive microservices in a fully non-blocking and asynchronous manner.

# backend
16 hours

Event-driven Applications with Kafka

Gain the skills and knowledge required to build Scala applications that use Kafka as their backbone.

# backend
16 hours

Kubernetes for Application Developers

Learn the patterns, architectures and techniques required to write resilient applications on Kubernetes.

# backend
16 hours

Book a Training