performance-profiling

Performance profiling principles. Measurement, analysis, and optimization techniques.

View Source
name:performance-profilingdescription:Performance profiling principles. Measurement, analysis, and optimization techniques.allowed-tools:Read, Glob, Grep, Bash

Performance Profiling

> Measure, analyze, optimize - in that order.

🔧 Runtime Scripts

Execute these for automated profiling:

ScriptPurposeUsage
scripts/lighthouse_audit.pyLighthouse performance auditpython scripts/lighthouse_audit.py https://example.com


1. Core Web Vitals

Targets

MetricGoodPoorMeasures
LCP< 2.5s> 4.0sLoading
INP< 200ms> 500msInteractivity
CLS< 0.1> 0.25Stability

When to Measure

StageTool
DevelopmentLocal Lighthouse
CI/CDLighthouse CI
ProductionRUM (Real User Monitoring)


2. Profiling Workflow

The 4-Step Process

1. BASELINE → Measure current state
  • IDENTIFY → Find the bottleneck

  • FIX → Make targeted change

  • VALIDATE → Confirm improvement
  • Profiling Tool Selection

    ProblemTool
    Page loadLighthouse
    Bundle sizeBundle analyzer
    RuntimeDevTools Performance
    MemoryDevTools Memory
    NetworkDevTools Network


    3. Bundle Analysis

    What to Look For

    IssueIndicator
    Large dependenciesTop of bundle
    Duplicate codeMultiple chunks
    Unused codeLow coverage
    Missing splitsSingle large chunk

    Optimization Actions

    FindingAction
    Big libraryImport specific modules
    Duplicate depsDedupe, update versions
    Route in mainCode split
    Unused exportsTree shake


    4. Runtime Profiling

    Performance Tab Analysis

    PatternMeaning
    Long tasks (>50ms)UI blocking
    Many small tasksPossible batching opportunity
    Layout/paintRendering bottleneck
    ScriptJavaScript execution

    Memory Tab Analysis

    PatternMeaning
    Growing heapPossible leak
    Large retainedCheck references
    Detached DOMNot cleaned up


    5. Common Bottlenecks

    By Symptom

    SymptomLikely Cause
    Slow initial loadLarge JS, render blocking
    Slow interactionsHeavy event handlers
    Jank during scrollLayout thrashing
    Growing memoryLeaks, retained refs


    6. Quick Win Priorities

    PriorityActionImpact
    1Enable compressionHigh
    2Lazy load imagesHigh
    3Code split routesHigh
    4Cache static assetsMedium
    5Optimize imagesMedium


    7. Anti-Patterns

    ❌ Don't✅ Do
    Guess at problemsProfile first
    Micro-optimizeFix biggest issue
    Optimize earlyOptimize when needed
    Ignore real usersUse RUM data


    > Remember: The fastest code is code that doesn't run. Remove before optimizing.