Without it, 'Total number of frames seen: 0' in memray stats and flamegraphs render empty / C-only. Also added --follow-fork so uvicorn workers spawned as child processes are tracked.
17 lines
578 B
Bash
Executable File
17 lines
578 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Run the DECNET API under memray to capture an allocation profile.
|
|
# Stop with Ctrl-C; then render with `memray flamegraph <bin>`.
|
|
set -euo pipefail
|
|
|
|
HOST="${DECNET_API_HOST:-127.0.0.1}"
|
|
PORT="${DECNET_API_PORT:-8000}"
|
|
OUT="${OUT:-profiles/memray-$(date +%s).bin}"
|
|
mkdir -p "$(dirname "$OUT")"
|
|
|
|
echo "Starting uvicorn under memray -> ${OUT}"
|
|
python -m memray run --trace-python-allocators --follow-fork \
|
|
-o "${OUT}" -m uvicorn decnet.web.api:app \
|
|
--host "${HOST}" --port "${PORT}" --log-level warning
|
|
|
|
echo "Render with: memray flamegraph ${OUT}"
|