Performance
Performance engineering encompasses the techniques applied during a systems development life cycle to ensure the non-functional requirements for performance (such as throughput, latency, or memory usage) will be met. It may be alternatively referred to as systems performance engineering within systems engineering, and software performance engineering or application performance engineering within software engineering.
Performance Engineering, in Hackernoon. Retrieved 2/24/2018. https://en.wikipedia.org/wiki/Performance_engineering
Position on the Adoption Curve
Presentations about Performance
Observability and Emerging Infrastructures
Lessons From a ~Yearly Re-Write of a Data Pipeline
Software Design for Persistent Memory Systems
High Performance Actors
C++ for Real Time Communications in the Cloud
PerfView: The Ultimate .NET Performance Tool
Unikraft - Unleashing the Power of Unikernels
Encryption Without Magic, Risk Mngmnt Without Pain
Cluster Consensus: When Aeron Met Raft
The Present and Future of Serverless Observability
Bigger, Faster and More Secure
Tools to Put Deep Learning Models in Production
An Engineering-Led Culture at Scale
Streaming Reactive Systems & Data Pipes w. squbs
Streaming Reactive Systems & Data Pipes w. squbs
How Performance Optimizations Shatter Security Boundaries
Java at Speed
Real-Time Data Analysis and ML for FraudPrevention
Applied Performance Theory
XDP in Practice: DDoS Mitigation @Cloudflare
Performance Management in the Wild
High Performance Java AMA w/ Gil Tene
Production Diagnostics for Node Applications
Profiling JVM Applications in Production
Mastering Microservices Monitoring with Prometheus
Mastering Microservices Monitoring with Prometheus
Interviews
PerfView: The Ultimate .NET Performance Tool
What's the primary focus of your talk?
I traditionally have been a Windows person. My first year as a developer was C++ on Windows. But at some point I became a performance diagnostic generalist. I do a mix of work that could be a Linux system, even embedded Linux, it could be .NET running on Windows, could be web applications, could be JVM. I don't deal with specific languages so much although I do still write code. I'm more interested in how the runtime works, in the interactions with the operating system, systems level stuff. That's where I find most interesting cases.
Can you tell us a bit about the motivation for your talk?
A lot of Windows developers only have in their toolbox some very expensive and not really 'wieldy' performance diagnostic tools. You could maybe use them in the development environment while you're writing the code, maybe even in load testing but not so much in production. A lot of the Windows profilers and the .NET profilers slow you down a lot, and they have really complicated installations required or they are very invasive. There's a bunch of problems which make them irrelevant for production even if it's a controlled production environment, and even worse if it is partially under your control, like a PaaS cloud offering where you're not really just running arbitrary code on the target machine. And this is where PerfView comes in. It's an open source tool. It was originally developed inside Microsoft for their own use troubleshooting and diagnosing issues with the .NET runtime itself and with various applications they had. One of the first users was the Bing team, and they have used it extensively until this day. But now it's a comprehensive tool for doing all kinds of performance analysis on Windows. It has a strong .NET focus but you can use it for C++ applications as well. What’s more, you can put PerfView in a production environment and grab data and move it back and forth.