configure-memory-profiling
Memory profiling with pytest-memray for Python. Use when setting up memory profiling, adding CI memory regression detection, or setting memory thresholds.
What this skill does
# /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: 1. **pytest-memray**: Check [PyPI](https://pypi.org/project/pytest-memray/) 2. **memray**: Check [PyPI](https://pypi.org/project/memray/) ### 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) 1. Install pytest-memray: `uv add --group dev pytest-memray` 2. Install native support if `--native`: `uv add --group dev pytest-memray[native]` 3. Update `pyproject.toml` with pytest configuration (markers, filterwarnings) 4. Create `memory-reports/` directory 5. Use configuration templates from [REFERENCE.md](REFERENCE.md) ### Step 6: Create memory profiling test files 1. Add memory fixtures to `tests/conftest.py` (reports dir setup, threshold fixture, data generator) 2. Create `tests/test_memory_example.py` with example memory limit tests 3. Create `tests/benchmarks/test_memory_benchmarks.py` for trend tracking 4. Use test templates from [REFERENCE.md](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](REFERENCE.md) ### Step 9: Update standards tracking Update `.project-standards.yaml`: ```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](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 ```bash # 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
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.