Monitoring Asynchronous Applications*
The lure of asynchronous programming is that it will make your application run faster and your code simpler to reason about. So we have our wonderfully efficient non-blocking app; how do we check that it's delivering the goods performance wise?
Is your asynchronous application as good as you think it is? Other activity in an asynchronous app affects response time and task completion, differently than it does in a synchronous one. Now that pieces of code are flying around in a mixed up order, what should we measure to make sure we are really seeing this fast magic, and how do we measure it?
I’ll quickly walk through building an app using coroutines and event loop callbacks in Python. Then we’ll look at things like response time, wait time, and total duration, and how to connect the pieces together. In the end, we’ll have a cohesive picture of what’s actually happening while our application is in flight.
I will be giving examples in Python, but the principles should be applicable to any framework that uses an event loop and/or coroutines.
In the last year I've given talks at OSCON, PyCarribbean and OSB (2015). I'm also an organizer for PyLadies PDX where I lead workshops.
Amy Boyle is a software engineer at New Relic. She is active in the local tech community as an organizer for the Portland Pyladies group, where she helps plan and lead workshops. Her interests include performance, data analytics, and puppies.
- Title: Monitoring Asynchronous Applications
- Track: Practice
- Room: B302/303
- Time: 2:30 – 3:15pm
The lure of asynchronous programming is that it will make your application run faster and your code simpler to reason about. So we have our wonderfully efficient non-blocking app; how do we check that it’s delivering the goods performance wise?
- Speakers: Amy Boyle