Traces deoptimization events where execution falls back from compiled code to interpreter. Use to detect deoptimization loops, unstable assumptions, and type instability. Zero transfers in steady-state is the goal. Many transfers indicate severe performance problems. Critical for diagnosing compilation instability. (project)
Traces deoptimization events where compiled code falls back to interpreter. Identifies performance-critical deoptimization loops and type instability issues.
/plugin marketplace add antonykamp/cc-truffle-performance-plugin/plugin install antonykamp-cc-truffle-performance-plugin@antonykamp/cc-truffle-performance-pluginThis skill inherits all available tools. When active, it can use any tool Claude has access to.
PATTERNS.mdTraces every deoptimization event where execution falls back from compiled code to interpreter. Critical for finding the most severe performance problems.
Goal: Zero transfers in steady-state execution!
# Basic deoptimization trace
<launcher> --experimental-options \
--engine.TraceTransferToInterpreter <program>
# Combined with compilation trace (HIGHLY RECOMMENDED)
<launcher> --experimental-options \
--engine.TraceTransferToInterpreter \
--engine.TraceCompilation \
<program> 2>&1 | tee transfers.log
# Focus on specific function
<launcher> --experimental-options \
--engine.TraceTransferToInterpreter \
--engine.CompileOnly=functionName \
<program>
Before running:
<launcher> --experimental-options --engine.TraceTransferToInterpreter -c 'print 1;' → Verify no false transfersAfter running:
tool-outputs/trace-transfers-[benchmark].txtGate: All boxes checked? → Proceed to analysis
| Option | Description |
|---|---|
--engine.TraceTransferToInterpreter | Trace all deoptimizations |
--engine.TraceCompilation | Combine for full picture |
--engine.CompileOnly=<name> | Filter to specific function |
--engine.TraceStackTraceLimit=<n> | Stack trace depth (default 20) |
[engine] transferToInterpreter at
problemFunction(<source>:42:123-456)
callerFunction(<source>:18:78-90)
topLevelFunction(<source>:5:10-50)
[engine] transferToInterpreter at MyNode.execute(<source>:42)
[engine] transferToInterpreter at MyNode.execute(<source>:42)
[engine] transferToInterpreter at MyNode.execute(<source>:42)
...dozens more at same location...
🚨 This is catastrophic! Often worse than never compiling.
Cause: Unstable type assumptions Fix: Implement proper type specializations, avoid mixing types
[First 5 seconds]
...many transfers...
[After 10+ seconds]
[No more transfers] ✅
Acceptable: Decreases over time, stops after warmup
[During entire execution]
[engine] transferToInterpreter at errorHandler(<source>:250)
Acceptable: Infrequent, from error handling or validation
| Count | Status | Action |
|---|---|---|
| 0 | ✅ Perfect | Ideal state |
| 1-10 | ✅ OK | Likely warmup or rare paths |
| 10-100 | ⚠️ Investigate | May have issues |
| 100+ | ❌ Critical | Deoptimization loop likely |
# Count total transfers
grep -c "transferToInterpreter" transfers.log
# Count unique locations
grep "transferToInterpreter at" transfers.log | sort -u | wc -l
# Find repeated locations (deoptimization loops)
grep "transferToInterpreter at" transfers.log | sort | uniq -c | sort -rn
| Finding | Next Skill |
|---|---|
| Deopt loops | Fix type stability, add specializations |
| Property access deopts | Stabilize object shapes |
| Unclear cause | analyzing-compiler-graphs |
tracing-compilation-events - See compilation cyclesprofiling-with-cpu-sampler - Measure impactdetecting-performance-warnings - Find barriersanalyzing-compiler-graphs - Deep analysis<launcher> --help:engine | grep -i transfer
See PATTERNS.md for detailed problem patterns and solutions.
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.