How to Build a Design System | Design Systems 102 | Figma Blog (opens in new tab)
Design system 101: What is a design system? Insights Design systems Career & education Design UI/UX Productivity
Design system 101: What is a design system? Insights Design systems Career & education Design UI/UX Productivity
Christophe Nasarre Previously in this series, we presented a high-level overview of Datadog’s .NET continuous profiler and discussed CPU and wall time profiling. This third part covers exceptions and lock contention profiling, with related sampling strategies. When an applicatio…
Continuous Profiling has evolved beyond aggregate flame graphs to include time-based visualizations that reveal ephemeral performance issues often missed by traditional tools. By utilizing a timeline view, developers can pinpoint transient latency spikes, thread contention, and resource starvation that are typically averaged out in standard profiling reports. This granular visibility allows for precise debugging of production environments without the high overhead usually associated with deep instrumentation. ### Limitations of Aggregate Profiling * Traditional profiles, such as flame graphs, aggregate data over a specific window, which can mask short-lived performance "micro-stutters." * Temporal context is often lost in aggregation, making it difficult to correlate a specific performance dip with an external event or a sudden burst in traffic. * Issues like brief lock contention or "stop-the-world" garbage collection events often disappear into the background noise of overall CPU usage when viewed in a non-temporal format. ### Granular Visibility via Timeline Views * The timeline view provides a horizontal, Gantt-chart style visualization of thread activity, allowing engineers to see exactly what every thread was doing at a specific millisecond. * Thread states are categorized into CPU time, blocked time, and waiting time, enabling developers to distinguish between intensive computation and idle periods. * The interface allows users to zoom in on specific time intervals to analyze the execution of methods across multiple threads simultaneously, providing a "system-wide" view of execution. ### Detecting Thread Contention and Bottlenecks * Lock contention is easily identified when multiple threads transition to a "Blocked" state at the same timestamp, indicating they are fighting for the same resource. * The timeline view assists in identifying the "monitor owner"—the specific thread holding a lock—which helps determine why other threads are stalled. * Engineers can use these views to detect inefficient thread pool configurations, such as thread starvation or excessive context switching caused by over-provisioning. ### Correlation with Traces and Metrics * Modern continuous profilers integrate timeline data with distributed tracing, allowing for "span-to-profile" navigation. * When a specific request is flagged as slow in a trace, developers can jump directly to the timeline view to see the exact code execution and thread state during that specific request's lifecycle. * This integration bridges the gap between high-level application performance monitoring and low-level code execution, providing a cohesive path from symptom to root cause. To effectively manage high-scale distributed systems, engineering teams should shift from reactive, on-demand profiling to continuous, timeline-based monitoring. Implementing a profiler that offers thread-level temporal granularity ensures that intermittent production issues are captured as they happen, significantly reducing the mean time to resolution for complex performance bugs.
Good ideas stick Inside Figma Product updates Design FigJam News
What we launched at Framework Inside Figma Design systems Product updates Engineering Prototyping News
Engineering VP spotlight: Ivo Dimitrov
Austin Lai Marie-Laure Bardonnet In this edition of the Datadog Engineering Spotlight, Austin from the Community team sat down (virtually) with Marie-Laure Bardonnet. She's a Senior Engineering Manager leading engineering for Datadog's Log Management team, and was once an intern…
Digital design is now a real job Insights Leadership Report Thought leadership
Behind the feature: Inline device frames Inside Figma Prototyping Behind the scenes Product updates Design Engineering Plugins & tooling UI/UX Figma Design
The growing pains of database architecture Inside Figma Infrastructure Engineering Behind the scenes Quality & performance
Keeping Figma fast Inside Figma Quality & performance Engineering
Little Big Updates: When going big actually means thinking small Inside Figma Product updates Thought leadership Quality & performance Culture Behind the scenes Product management Tips & inspiration News
Why roles are not rules Insights Engineering Collaboration Design
Meet the maker: Marcin Wichary Inside Figma Profiles & interviews Writing Typography Thought leadership Culture
Desperately seeking squircles Inside Figma Engineering Hiring