SESSION + Live Q&A

Continuous Profiling in Production: What, Why and How

Everyone wants to understand what their application is really doing in production, but this information is normally invisible to JVM developers. Profilers tell you what code your application is running but few developers profile and mostly on their development environments. Thankfully production profiling is now a practical reality that can help you solve and avoid performance problems.

 

Profiling in development can be problematic because it’s rare that you have a realistic workload or performance test for your Java Virtual Machine. Even if you’ve got accurate perf tests maintaining these and validating that they represent production systems is hugely time consuming and hard. Not only that but often the hardware and operating system that you run in production are different from your development environment.

 

This pragmatic talk will help you understand the ins and outs of profiling in a production system. You’ll learn about different techniques and approaches that help you understand what’s really happening with your system. This helps you to solve new performance problems, regressions and undertake capacity planning exercises


What is continuous profiling?

Performance is crucial to make the system much cheaper. We always found profiling in production an incredibly laborious process. Every time we did it it was a huge win. But we do it very frequently because of how laborious and how risky it is. Engineers don't like going into production doing things because basically, they get the wrong people shouting at them.

Are you going to be talking about specific tools or strategies for implementing tooling?

We talk about different information coming out of existing monitoring systems in terms of metrics and how instrumentation works. We look at some profiling techniques which are JVM specific but would apply to any language that's running on the JVM, Java, Scala and Clojure.

How focused on the JVM is this talk?

A lot of our discussions about different metrics and implementation tradeoffs are pretty much applicable to anyone running a software system. JVM specific is when we talk about how you can do low overhead JVM production profiling.

What do you want people to leave the talk with?

One thing that people often do when they diagnose performance problems is basically reproduce those performance problems in a development environment and then try to fix that. People do that because they don't have enough information to see what their production system is doing. One of the big takeaways is that you don't want to be doing that. It can often be very difficult to do, very time consuming to get an accurate reproduction. Your software stack, your hardware and software, can all be very different in your development environment than in production. You might fix the wrong problem.

What do you feel is the next potentially disruptive technology for software?

Where we are on the AI adoption process in terms of technologies, we're very very early on. Even though it's a current disruptor it feels like it will still be a huge disruptive factor for the next 10 to 15 years.


Speaker

Richard Warburton

Top Performance-Minded Java Engineer & cofounder of Opsian.com

Richard is a Software Engineer, Teacher and Java Champion. He is the cofounder of Opsian.com and has a long-standing passion for improving Java performance. He’s worked as a developer in different areas including Developer Tools, HFT and Network Protocols. He has written the book “Java 8...

Read more
Find Richard Warburton at:

Speaker

Sadiq Jaffer

Director at Opsian

Sadiq has for years consulted for multi-national companies designing and implementing highly scalable intelligent platforms. His experience has included deep learning systems, embedded platforms, desktop and mobile games development. He's delivered talks on performance at top software engineering...

Read more
Find Sadiq Jaffer at:

Location

Whittle, 3rd flr.

Track

Bare Knuckle Performance

Topics

PerformanceProfilersInterview Available

Share

From the same track

SESSION + Live Q&A Performance

Applying Concurrency Cookbook Recipes to SPEC JBB

Our overarching goal was to understand, quantify and highlight the consequences of certain choices of fences when compiling Java constructs down to hardware platforms such as ARM, IBM Power or Intel x86. We used Doug Lea's cookbook as a compilation guide, and SPEC JBB as our reference benchmark....

Monica Beckwith

Java Champion, First Lego League Coach, passionate about JVM Performance @Microsoft

Jade Alglave

Lecturer @ucl

SESSION + Live Q&A Performance

Interaction Protocols: It's All About Good Manners

Distributed and concurrent systems can be considered a social group that collaborate to achieve collective goals. In order to collaborate a system of rules must be applied that affords good hygiene, fault tolerance, and effective communication to coordinate, share knowledge, and provide feedback...

Martin Thompson

High Performance & Low Latency Specialist

SESSION + Live Q&A Performance

Novel Algos and Optimizations in JCTools Concurrent Queues

Bitwise tricks, memory layout, minimal memory ordering primitives and some innovation result in queues that leave their JDK alternatives in the dust.In this talk we will follow several examples of optimizations, tradeoffs and implementation details from the JCTools library. In addition we will...

Nitsan Wakart

Performance Engineer - Consultant @DataStax & Chief Performance Consultant at TTNR Labs

SESSION + Live Q&A Performance

Peddle the Pedal to the Metal

Tips and techniques for writing highly efficient and scalable software drawn from decades of experience. You'll see that the guiding principle is a simple one, and can be applied nearly everywhere. The talk is focused on programming in C.

Howard Chu

Systems Level Developer & CTO @SymasCorp

PANEL DISCUSSION + Live Q&A Open Space

Panel: Performance - What's Next?

A lot of the techniques and approaches that we use for developing and improving software performance are tried and tested rather than innovative. But what does the future hold - will be doing the same things in 5, 10 or 20 years time or will software evolve?

Richard Warburton

Top Performance-Minded Java Engineer & cofounder of Opsian.com

Sadiq Jaffer

Director at Opsian

Howard Chu

Systems Level Developer & CTO @SymasCorp

Nitsan Wakart

Performance Engineer - Consultant @DataStax & Chief Performance Consultant at TTNR Labs

Martin Thompson

High Performance & Low Latency Specialist

Monica Beckwith

Java Champion, First Lego League Coach, passionate about JVM Performance @Microsoft

View full Schedule