All skills
Skillintermediate

Performance Tuning

Control maximum heap memory (in MB):

Claude Code Knowledge Pack7/10/2026

Overview

Performance Tuning

Memory Configuration

CODEQL_RAM Environment Variable

Control maximum heap memory (in MB):

# 48GB for large codebases
CODEQL_RAM=48000 codeql database analyze codeql.db ...

# 16GB for medium codebases
CODEQL_RAM=16000 codeql database analyze codeql.db ...

Guidelines:

Codebase SizeRecommended RAM
Small (<100K LOC)4-8 GB
Medium (100K-1M LOC)8-16 GB
Large (1M+ LOC)32-64 GB

Thread Configuration

Analysis Threads

# Use all available cores
codeql database analyze codeql.db --threads=0 ...

# Use specific number
codeql database analyze codeql.db --threads=8 ...

Note: --threads=0 uses all available cores. For shared machines, use explicit count.

Query-Level Timeouts

Prevent individual queries from running indefinitely:

# Set per-query timeout (in milliseconds)
codeql database analyze codeql.db --timeout=600000 ...

A 10-minute timeout (600000) catches runaway queries without killing legitimate complex analysis. Taint-tracking queries on large codebases may need longer.

Evaluator Diagnostics

When analysis is slow, use --evaluator-log to identify which queries consume the most time:

codeql database analyze codeql.db \\
  --evaluator-log=evaluator.log \\
  --format=sarif-latest \\
  --output=results.sarif \\
  -- codeql/python-queries:codeql-suites/python-security-extended.qls

# Summarize the log
codeql generate log-summary evaluator.log --format=text

The summary shows per-query timing and tuple counts. Queries producing millions of tuples are likely the bottleneck.

Disk Space

PhaseTypical SizeNotes
Database creation2-10x source sizeCompiled languages are larger due to build tracing
Analysis cache1-5 GBStored in database directory
SARIF output1-50 MBDepends on finding count

Check available space before starting:

df -h .
du -sh codeql_*.db 2>/dev/null

Caching Behavior

CodeQL caches query evaluation results inside the database directory. Subsequent runs of the same queries skip re-evaluation.

ScenarioCache Effect
Re-run same packsFast — uses cached results
Add new query packOnly new queries evaluate
codeql database cleanupClears cache — forces full re-evaluation
--rerun flagIgnores cache for this run

When to clear cache:

  • After deploying new data extensions (cache may hold stale results)
  • When investigating unexpected zero-finding results
  • Before benchmark comparisons (ensures consistent timing)
# Clear evaluation cache
codeql database cleanup codeql_1.db

Troubleshooting Performance

SymptomLikely CauseSolution
OOM during analysisNot enough RAMIncrease CODEQL_RAM
Slow database creationComplex buildUse --threads, simplify build
Slow query executionLarge codebaseReduce query scope, add RAM
Database too largeToo many filesUse exclusion config (codeql-config.yml with paths-ignore)
Single query hangsRunaway evaluationUse --timeout and check --evaluator-log
Repeated runs still slowCache not usedCheck you're using same database path