SESSION + Live Q&A

Understanding CPU Microarchitecture to Increase Performance

Microprocessors have evolved over decades to eke out performance from existing code. But the microarchitecture of the CPU leaks into the assumptions of a flat memory model, with the result that equivalent code can run significantly faster by working with, rather than fighting against, the microarchitecture of the CPU.  

In this talk, Alex Blewitt will present the microarchitecture of modern CPUs, showing how misaligned data can cause cache line false sharing, how branch prediction works and when it fails, how to read CPU specific performance monitoring counters and use that in conjunction with tools like perf and toplev to discover where bottlenecks in CPU heavy code live. We’ll use these facts to revisit performance advice on general code patterns and the things to look out for in executing systems. The talk will be language agnostic, although it will be based on the Linux/x86_64 architecture.


Speaker

Alex Blewitt

Head of Cloud Infrastructure at Santander

Alex Blewitt has been working with Java since its first release, and has worked on JVM projects at Goldman Sachs and Credit Suisse, where he was the JCP representative until 2016. He co-founded the Docklands.LJC and has spoken about Java and performance at several conferences, and writes for...

Read more
Find Alex Blewitt at:

Location

St James, 4th flr.

Track

Bare Knuckle Performance

Topics

PerformanceLinuxHardwareCode AnalysisOptimization

Share

From the same track

UNCONFERENCE + Live Q&A Performance

Performance Open Space

Details to follow.

SESSION + Live Q&A Silicon Valley

Does Java Need Inline Types? What Project Valhalla Can Bring to Java

Inline(value) types are the key part of experimental project Valhalla which should bring new abilities to Java language. It's a story not only about performance, it's also a  story about safety, abstraction,expressiveness, maintainability, etc. But on this session we will talk about...

Sergey Kuksenko

Java Performance Engineer @Oracle

SESSION + Live Q&A Performance

Maximizing Applications Performance with GraalVM

GraalVM is a high-performance virtual machine offering new optimizations for individual languages and seamless interoperability for polyglot applications. One of the interesting features one can get with GraalVM is the freedom to choose between JIT and AOT compilation modes. This way you can...

Alina Yurenko

Developer Advocate for GraalVM @Oracle

SESSION + Live Q&A Performance

Performance vs. New Features: It Doesn’t Have to Be a Zero-Sum Game

In this talk we'll explore implementing CRC checksums for a durable log while trying to retain respectable performance. We'll discuss motivations for applying checksums and explore how convoluted this process can be. We need to deal with missing/convoluted APIs to get the basics working....

Dmitry Vyazelenko

Founder at Safepoint Ost

SESSION + Live Q&A Performance

Quarkus

There’s a radical advance in Java development waiting for you, right here. Why is everyone excited about Quarkus? Does it really produce sub-atomic applications? Is it an exaggeration to say it boots at “supersonic” speed?If you wonder how these figures are even possible, this...

Sanne Grinovero

Senior Principal Software Engineer @RedHat

View full Schedule