- /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
-
- 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
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 /configure:tests - Configure testing frameworks /configure:coverage - Code coverage configuration /configure:load-tests - Load and performance testing /configure:all - Run all compliance checks pytest-memray docs : https://pytest-memray.readthedocs.io memray docs : https://bloomberg.github.io/memray