Tag
profiling
- Oct 12, 2026 Attributing Rendering Work: Reading Traces Without Guessing How to tell script time from style, layout, paint, and raster in a frame trace, which entry types expose the same information to code, and how to sample without fooling yourself. web platform
- Sep 8, 2026 Virtualized Performance Counters and the Time They Do Not Count How a guest gets access to a PMU, what context switching the counters costs, and why the cycles reported inside a guest systematically omit the time the hypervisor spent on its behalf. virtualization
- Apr 23, 2026 Attributing Jank to a Specific Pipeline Stage A method for turning a frame timeline into one responsible stage, why the naive comparison of durations misleads, and how to distinguish queue latency from work latency. mobile computing
- Apr 21, 2026 The Overhead Budget of a Sampling Profiler Where the cost of continuous profiling actually goes, why per-sample cost and sample rate multiply, and how aggregation location changes the bill. observability
- Mar 4, 2026 Frame Pointers, DWARF Call Frame Information, and What Breaks When Both Are Absent Two ways to recover a call stack from a captured instruction pointer, the register and table costs of each, and the failure signatures that make a stack look valid when it is not. observability
- Feb 7, 2026 Off-CPU Time and Scheduler Delay as a Profile How to attribute the time a thread spends not running, why the stack at the moment of blocking is the right attribution, and what makes off-CPU data heavy-tailed. observability
- Dec 8, 2025 Hot Code Detection with Invocation and Back-Edge Counters How runtimes decide that a function or loop is worth compiling, why method entries and loop back edges need separate counters, and what the counter arithmetic gets wrong. language runtimes
- Sep 8, 2025 How Null Rates and Distinct Counts Detect a Broken Join Column profiles are cheap aggregates that catch errors no type check can: a null-rate jump or a collapsed distinct count localises a fault to one column. data engineering
- Jul 28, 2025 Sampled Allocation Profiling and the Cost of Interposing on malloc How heap profilers attribute live memory to allocation sites, why sampling by size needs corrections the CPU analogue does not, and what interposition itself costs. observability
- Jun 24, 2025 Measuring Remote Access with Hardware Counters Which performance events distinguish a local from a remote memory access, why per-node counters answer a different question than per-process ones, and how the two are combined to find misplaced data. memory systems
- May 9, 2025 Build IDs, Separate Debug Files, and Symbol Resolution at Scale How an address in a stripped production binary becomes a function name, why the build ID is the identity that makes it possible, and where symbolication pipelines lose information. observability
- Nov 18, 2024 Type Feedback and Inline Caches in Dynamic Call Sites How a runtime records which types actually reach a polymorphic operation, how an inline cache turns that history into a few comparisons, and why monomorphic feedback changes what the compiler can generate. language runtimes
- Sep 22, 2024 Folded Stacks, Call Trees, and What Aggregation Destroys Two representations of the same samples, what each preserves, and why the choice determines whether a profile can be merged across hosts or read as a flame graph. observability
- Aug 13, 2024 Type Feedback and the Speculation Budget How a runtime decides what to speculate about from what the interpreter observed, why the counters that trigger optimization are the same counters that guard it, and what happens when a speculative bet loses. language runtimes
- Aug 7, 2023 Sampling Error, Skid, and How Many Samples a Profile Needs Why a profile is a binomial estimate, how instruction skid biases samples toward long-running instructions, and what confidence a given sample count actually supports. observability
- May 10, 2023 Sample-Based Profiling and Stack Walking in Compiled Code How a runtime learns where time goes by interrupting threads rather than instrumenting them, what a walk over compiled frames must decode, and why sampled profiles are biased in ways counters are not. language runtimes
- Feb 19, 2022 In-Kernel Aggregation: Counting Stacks in a Hash Map Instead of Shipping Them How a kernel-side profiler folds samples into a map before userspace sees them, why that removes the ring buffer from the hot path, and where the map's limits bite. observability