configure-memory-profiling

/configure:memory-profiling

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "configure-memory-profiling" with this command: npx skills add laurigates/claude-plugins/laurigates-claude-plugins-configure-memory-profiling

/configure:memory-profiling

Check and configure memory profiling infrastructure for Python projects using pytest-memray.

When to Use This Skill

Use this skill when... Use another approach when...

Setting up memory profiling for a Python project from scratch Project is not Python — memray/pytest-memray are Python-only

Adding pytest-memray integration for CI memory regression detection Profiling CPU performance — use cProfile or py-spy instead

Configuring memory leak detection in test suites Running load/stress tests — use /configure:load-tests

Setting memory thresholds and allocation benchmarks for CI Quick one-off memory check — run uv run pytest --memray directly

Enabling native C extension stack tracking for deep profiling Profiling production systems live — use memray standalone or Grafana

Context

  • Project root: !pwd

  • Python project: !find . -maxdepth 1 ( -name 'pyproject.toml' -o -name 'setup.py' )

  • pytest-memray installed: !grep -r 'pytest-memray' pyproject.toml requirements*.txt

  • memray installed: !grep -r 'memray' pyproject.toml requirements*.txt

  • Conftest fixtures: !grep -l 'memray' tests/conftest.py

  • Memory test files: !find tests -maxdepth 2 -name 'memory' -o -name 'memray'

  • Benchmark tests: !find tests -maxdepth 2 -type d -name 'benchmarks'

  • CI workflows: !find .github/workflows -maxdepth 1 -name 'memory'

  • Memory reports dir: !find . -maxdepth 1 -type d -name 'memory-reports'

Parameters

Parse from $ARGUMENTS :

  • --check-only : Report memory profiling compliance status without modifications

  • --fix : Apply all fixes automatically without prompting

  • --threshold <mb> : Set default memory threshold in MB (default: 100)

  • --native : Enable native stack tracking for C extensions

Supported tools:

Tool Best For

pytest-memray (recommended) Test-integrated profiling, CI/CD memory limits, leak detection

memray standalone Deep analysis, flame graphs, production profiling

tracemalloc Quick debugging, no dependencies, lightweight

Execution

Execute this memory profiling configuration check:

Step 1: Verify this is a Python project

Read the context values. If no pyproject.toml or setup.py is found, report "Not a Python project" and stop.

Step 2: Check latest tool versions

Use WebSearch or WebFetch to verify current versions:

  • pytest-memray: Check PyPI

  • memray: Check PyPI

Step 3: Analyze current memory profiling setup

Check for complete setup:

  • pytest-memray installed as dev dependency

  • memray backend installed

  • pytest configuration in pyproject.toml (markers, addopts)

  • Memory limit tests using @pytest.mark.limit_memory

  • Leak detection enabled (--memray-leak-detection )

  • Native tracking configured (if --native flag)

  • CI/CD integration configured

  • Reports directory exists

Step 4: Generate compliance report

Print a compliance report covering:

  • Installation status (pytest-memray, memray, pytest versions)

  • Configuration (pytest integration, markers, leak detection, native tracking)

  • Test coverage (memory limit tests, allocation benchmarks)

  • CI/CD integration (workflow, threshold, artifact upload, trend tracking)

End with overall issue count and recommendations.

If --check-only is set, stop here.

Step 5: Install and configure pytest-memray (if --fix or user confirms)

  • Install pytest-memray: uv add --group dev pytest-memray

  • Install native support if --native : uv add --group dev pytest-memray[native]

  • Update pyproject.toml with pytest configuration (markers, filterwarnings)

  • Create memory-reports/ directory

  • Use configuration templates from REFERENCE.md

Step 6: Create memory profiling test files

  • Add memory fixtures to tests/conftest.py (reports dir setup, threshold fixture, data generator)

  • Create tests/test_memory_example.py with example memory limit tests

  • Create tests/benchmarks/test_memory_benchmarks.py for trend tracking

  • Use test templates from REFERENCE.md

Step 7: Add package scripts

Add memory profiling commands to Makefile or pyproject.toml:

  • test-memory : uv run pytest --memray

  • test-memory-report : Run with bin output + generate flame graph

  • test-memory-leaks : uv run pytest --memray --memray-leak-detection

  • test-memory-native : uv run pytest --memray --native

Step 8: Configure CI/CD integration

Create .github/workflows/memory-profiling.yml with:

  • Memory profiling on PRs (detect regressions)

  • Scheduled weekly benchmarks for trend tracking

  • Flame graph generation

  • PR comment with results

  • Use workflow template from REFERENCE.md

Step 9: Update standards tracking

Update .project-standards.yaml :

components: memory_profiling: "2025.1" memory_profiling_tool: "pytest-memray" memory_profiling_threshold_mb: 100 memory_profiling_leak_detection: true memory_profiling_ci: true memory_profiling_native: false

Step 10: Print final compliance report

Print a summary of packages installed, configuration applied, test files created, commands available, CI/CD configured, and next steps for the user.

For detailed test templates, CI workflows, and standalone memray commands, see REFERENCE.md.

Agentic Optimizations

Context Command

Quick compliance check /configure:memory-profiling --check-only

Auto-fix all issues /configure:memory-profiling --fix

Run memory tests uv run pytest --memray

Detect memory leaks uv run pytest --memray --memray-leak-detection

Run with native tracking uv run pytest --memray --native

Generate flamegraph uv run memray flamegraph output.bin -o flamegraph.html

Flags

Flag Description

--check-only

Report status without offering fixes

--fix

Apply all fixes automatically without prompting

--threshold <mb>

Set default memory threshold in MB (default: 100)

--native

Enable native stack tracking for C extensions

Examples

Check compliance and offer fixes

/configure:memory-profiling

Check only, no modifications

/configure:memory-profiling --check-only

Auto-fix with custom threshold

/configure:memory-profiling --fix --threshold 200

Enable native tracking for C extensions

/configure:memory-profiling --fix --native

Error Handling

  • Not a Python project: Skip with message, suggest manual setup

  • pytest not installed: Offer to install pytest first

  • memray not supported: Note platform limitations (Linux/macOS only)

  • Native tracking unavailable: Warn about missing debug symbols

  • CI workflow exists: Offer to update or skip

See Also

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ruff linting

No summary provided by upstream source.

Repository SourceNeeds Review
General

imagemagick-conversion

No summary provided by upstream source.

Repository SourceNeeds Review
General

jq json processing

No summary provided by upstream source.

Repository SourceNeeds Review