33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Generate flamegraphs for CPU profiling
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
FLAMEGRAPH_DIR="$SCRIPT_DIR/../flamegraphs"
|
|
|
|
mkdir -p "$FLAMEGRAPH_DIR"
|
|
|
|
echo "🔥 Generating flamegraphs..."
|
|
|
|
cd "$PROJECT_ROOT"
|
|
|
|
# Generate flamegraph for distance metrics benchmark
|
|
echo "Flamegraph: distance_metrics..."
|
|
sudo cargo flamegraph --bench distance_metrics --output="$FLAMEGRAPH_DIR/distance_metrics.svg" -- --profile-time=30 || echo "Failed to generate distance_metrics flamegraph"
|
|
|
|
# Generate flamegraph for HNSW search benchmark
|
|
echo "Flamegraph: hnsw_search..."
|
|
sudo cargo flamegraph --bench hnsw_search --output="$FLAMEGRAPH_DIR/hnsw_search.svg" -- --profile-time=30 || echo "Failed to generate hnsw_search flamegraph"
|
|
|
|
# Change ownership
|
|
sudo chown -R $USER:$USER "$FLAMEGRAPH_DIR" 2>/dev/null || true
|
|
|
|
echo "✅ Flamegraph generation complete!"
|
|
echo "Flamegraphs saved to: $FLAMEGRAPH_DIR"
|
|
echo ""
|
|
echo "View flamegraphs:"
|
|
echo " firefox $FLAMEGRAPH_DIR/distance_metrics.svg"
|
|
echo " firefox $FLAMEGRAPH_DIR/hnsw_search.svg"
|