Killing latency and getting the most out of your hardware
Track: Bare Knuckle Performance
Location: Pacific LMNO
Day of week: Tuesday
Track Host: Monica Beckwith
Java Champion Monica Beckwith is a Java VM Performance Architect at Arm. She is considered subject matter expert and gets regular invitations to give talks on JVM/JIT Compilation/ Garbage Collection (GC). She has made various performance contributions to the Java HotSpot VM by researching the need for a NUMA-aware allocator and allocation patterns, reduction of redundant instructions, reduction of the Java object header, prefetching patterns, redundant array checks in a loop and various other optimizations for the JIT compiler, the generated code, the JVM heuristics and garbage collection and collectors. Monica is a regular speaker at various conferences and has several published articles on topics including garbage collection, the Java memory model and others. She led Oracle's Garbage First Garbage Collector performance team, and was named a JavaOne Rock Star.
10:35am - 11:25am
Scaling Up Performance Benchmarking
Performance scaling along with responsiveness is very important to both on-premise as well as cloud deployments. Often, deployments can be very simple to an extremely complex web of services where there is no single magic bullet for performance scaling. As part of the development of a very complex benchmark, we learned many lessons related to scaling up, scaling out and responsiveness. We would like to share application architecture decisions, observations points, problem analysis methodologies etc. which can be applied when architecting, deploying and analyzing real production applications. We will share how application level, as well as system level metrics, change for various application architecture decisions as well as high-level JVM analysis to correlate tail latencies.
Monica Beckwith, Java VM Performance Architect @Arm, previously led Oracle's G1GC Performance Team
1:40pm - 2:30pm
“Quantum” Performance Effects: Beyond The Core
CPU microarchitecture is hidden from developers by compilers, virtual machines, etc. Should developers know everything about CPU microarchitecture? It looks like learning quantum mechanics for cooking. Recently we heard how some microarchitecture features could lead to security breaches like Spectre/Meltdown. In this session, we won't talk about vulnerabilities. We will talk how (and how big) CPU microarchitecture details may have an influence on applications performance. Could it be visible by end-users? How to avoid misjudgment when we estimate our code performance? CPU is huge (not in size) that is why the talk is limited to those parts which located out of computational core (mostly caches and memory access).
2:55pm - 3:45pm
The Trouble With Memory
It is our experience that 60-70% of all the applications we analyze incur a performance penalty due to how it consumes and/or retains memory. Yet if you ask people what is their biggest performance headache it’s unlikely that they’d recognize memory as being #1. I have been involved in analyzing numerous applications for just these kinds of issues and in this session, I will cover the tell tale signs and symptoms that your application is one of those suffering from some sort of memory issue. I'll discuss what steps you can take to cure this problem and will also cover how the JVM can both help reduce the memory ~strength of your application. What should you do?"
4:10pm - 5:00pm
Tuning a Runtime for Both Productivity and Performance
Developers generally enjoy increased productivity when working in a managed code environment. What might not be obvious to them is the amount of investment in the managed code’s Virtual Machine to enable both productivity and high performance. Microsoft’s .NET team would like to share how they designed the runtime environment to balance convenience, fast startup, serviceability, low latency, high throughput. For examples services such as JIT compilation, TypeSystem, garbage collection all provide convenience but come at a cost. The challenges presented are common to many environments – you do not need to be a .NET developer to attend this talk.
Jared Parsons, Principal Developer Lead on C# Language Team @Microsoft
5:25pm - 6:15pm
Brewing Java Applications in Sigma Managed Clusters
In handling the largest online shopping event in the world, the emergence of large-scale software deployments in the data center has led to many challenges. We will cover two of them: (1) evaluating and estimating software performance at scale, and (2) optimizing software for resource management. This presentation addresses the two challenges by bringing the knowledge of software performance monitoring in the data center to the world of applying performance analytics. We will describe how effective decisions can be made in a case study.
Tracks
Monday, 5 November
-
Microservices / Serverless Patterns & Practices
Evolving, observing, persisting, and building modern microservices
-
Practices of DevOps & Lean Thinking
Practical approaches using DevOps & Lean Thinking
-
JavaScript & Web Tech
Beyond JavaScript in the Browser. Exploring WebAssembly, Electron, & Modern Frameworks
-
Modern CS in the Real World
Thoughts pushing software forward, including consensus, CRDT's, formal methods, & probabilistic programming
-
Modern Operating Systems
Applied, practical, & real-world deep-dive into industry adoption of OS, containers and virtualization, including Linux on Windows, LinuxKit, and Unikernels
-
Optimizing You: Human Skills for Individuals
Better teams start with a better self. Learn practical skills for IC
Tuesday, 6 November
-
Architectures You've Always Wondered About
Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, & more
-
21st Century Languages
Lessons learned from languages like Rust, Go-lang, Swift, Kotlin, and more.
-
Emerging Trends in Data Engineering
Showcasing DataEng tech and highlighting the strengths of each in real-world applications.
-
Bare Knuckle Performance
Killing latency and getting the most out of your hardware
-
Socially Conscious Software
Building socially responsible software that protects users privacy & safety
-
Delivering on the Promise of Containers
Runtime containers, libraries, and services that power microservices
Wednesday, 7 November
-
Applied AI & Machine Learning
Applied machine learning lessons for SWEs, including tech around TensorFlow, TPUs, Keras, PyTorch, & more
-
Production Readiness: Building Resilient Systems
More than just building software, building deployable production ready software
-
Developer Experience: Level up your Engineering Effectiveness
Improving the end to end developer experience - design, dev, test, deploy, operate/understand.
-
Security: Lessons Attacking & Defending
Security from the defender's AND the attacker's point of view
-
Future of Human Computer Interaction
IoT, voice, mobile: Interfaces pushing the boundary of what we consider to be the interface
-
Enterprise Languages
Workhorse languages found in modern enterprises. Expect Java, .NET, & Node in this track