mhtirogla
Home
Systems
API
Pricing
About
Log in
← Back
Home
›
Systems
›
Compilers and language tooling
sampling-profiler
sampling profiler
perf, samply
System
Techniques · 4
Primitives · 18
sampling-profiler
Debug info (DWARF)
compilers · medium: DWARF stores a tree of typed entries (DIEs), a line-number bytecode, unwind tables and location expressions that map machine state back to source; pick it for ELF/Mach-O debug builds.
›
Stack unwinding
compilers · medium: Frame-pointer, DWARF CFI and compact unwinding of call stacks
Symbolication
compilers · medium: Map addresses to functions and lines via DWARF, PDB and source maps
Dynamic instrumentation probes
hardware-os · medium: Kprobes, uprobes and tracepoints: patch breakpoints at runtime and run handlers
Executable formats elf pe
compilers · low: ELF, PE and Mach-O: sections, segments, symbol tables, relocations, dynamic loading
SPSC ring buffer
data-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.
›
String interning
data-structures · low: Store each distinct string once and refer to it by id
Swiss table
data-structures · low: Open-addressing hash table that filters 8-16 slots at once with 1-byte hash tags and SIMD, giving fast lookups at 87.5 % load.
›
Flame graphs
hardware-os · low: Aggregate sampled stacks into a prefix tree and render flame or icicle graphs
Hardware performance counters
hardware-os · low: PMU counters via perf_event: instructions, cycles, cache misses
mmap and the page cache
hardware-os · low: How read() and mmap reach file data through the kernel page cache, what readahead and madvise do, and why databases use their own buffer pool instead.
›
Varint (LEB128)
compression · low: Variable-length integers in 7-bit groups with a continuation bit; small numbers take 1 byte, the wire format of Protobuf, WebAssembly and DWARF.
›
Calling conventions abi
compilers · low: System V, Windows x64 and AAPCS64 ABIs: argument registers, stack frames, struct passing, FFI
Source maps
compilers · low: Source map v3: VLQ-encoded mappings from generated to original positions
Interval tree
data-structures · low: Index of ranges that answers "which intervals overlap this point or range?" in O(log n + k); static sorted-array form is the compact, cache-friendly choice.
›
Breakpoints watchpoints
compilers · low: Software breakpoints (int3 patching), hardware debug registers and single-stepping
Disassembly
compilers · low: Instruction decoding for x86 (prefixes, ModRM, variable length) and ARM; linear sweep vs recursive traversal
Ebpf
hardware-os · low: Verified in-kernel programs on hooks (kprobes, XDP, tc) with maps
False sharing
concurrency · low: Independent variables written by different cores on one cache line force the line to bounce between cores; pad or regroup hot data to fix it.
›
Memory ordering
concurrency · low: What Relaxed, Acquire, Release and SeqCst atomics actually guarantee, what they cost on x86 and ARM, and which one each pattern needs.
›
+ 2 more primitives
System
Techniques · 4
Primitives · 18
sampling-profiler
Debug info (DWARF)
compilers · medium: DWARF stores a tree of typed entries (DIEs), a line-number bytecode, unwind tables and location expressions that map machine state back to source; pick it for ELF/Mach-O debug builds.
›
Stack unwinding
compilers · medium: Frame-pointer, DWARF CFI and compact unwinding of call stacks
Symbolication
compilers · medium: Map addresses to functions and lines via DWARF, PDB and source maps
Dynamic instrumentation probes
hardware-os · medium: Kprobes, uprobes and tracepoints: patch breakpoints at runtime and run handlers
Executable formats elf pe
compilers · low: ELF, PE and Mach-O: sections, segments, symbol tables, relocations, dynamic loading
SPSC ring buffer
data-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.
›
String interning
data-structures · low: Store each distinct string once and refer to it by id
Swiss table
data-structures · low: Open-addressing hash table that filters 8-16 slots at once with 1-byte hash tags and SIMD, giving fast lookups at 87.5 % load.
›
Flame graphs
hardware-os · low: Aggregate sampled stacks into a prefix tree and render flame or icicle graphs
Hardware performance counters
hardware-os · low: PMU counters via perf_event: instructions, cycles, cache misses
mmap and the page cache
hardware-os · low: How read() and mmap reach file data through the kernel page cache, what readahead and madvise do, and why databases use their own buffer pool instead.
›
Varint (LEB128)
compression · low: Variable-length integers in 7-bit groups with a continuation bit; small numbers take 1 byte, the wire format of Protobuf, WebAssembly and DWARF.
›
Calling conventions abi
compilers · low: System V, Windows x64 and AAPCS64 ABIs: argument registers, stack frames, struct passing, FFI
Source maps
compilers · low: Source map v3: VLQ-encoded mappings from generated to original positions
Interval tree
data-structures · low: Index of ranges that answers "which intervals overlap this point or range?" in O(log n + k); static sorted-array form is the compact, cache-friendly choice.
›
Breakpoints watchpoints
compilers · low: Software breakpoints (int3 patching), hardware debug registers and single-stepping
Disassembly
compilers · low: Instruction decoding for x86 (prefixes, ModRM, variable length) and ARM; linear sweep vs recursive traversal
Ebpf
hardware-os · low: Verified in-kernel programs on hooks (kprobes, XDP, tc) with maps
False sharing
concurrency · low: Independent variables written by different cores on one cache line force the line to bounce between cores; pad or regroup hot data to fix it.
›
Memory ordering
concurrency · low: What Relaxed, Acquire, Release and SeqCst atomics actually guarantee, what they cost on x86 and ARM, and which one each pattern needs.
›
CPU caches and the memory hierarchy
hardware-os · low: Sizes, line widths and latencies of L1/L2/L3/DRAM on modern x86 and Apple M-series, and the data-layout rules that follow from them.
›
Virtual memory and the TLB
hardware-os · low: How page tables and TLBs translate every address, what TLB reach means, and when 2 MiB or 1 GiB huge pages pay off on Linux.
›
Copy for AI
Similar systems
Share the most building blocks with this one.
continuous-profiling
28 %
debugger
21 %
ebpf-platform
15 %