profile.sh 431 B

123456789101112131415161718192021
  1. #!/usr/bin/env bash
  2. set -e
  3. cd "$(dirname "$0")"
  4. # find process with name passed in (excluding this process)
  5. for PID in $(pgrep -f $1); do
  6. if [ "$PID" != "$$" ]; then
  7. ps -p $PID -o args
  8. TRACE_PID=$PID
  9. break
  10. fi
  11. done
  12. if [ -z "$TRACE_PID" ]; then
  13. echo "could not find PID for $1"
  14. exit 1
  15. fi
  16. sudo env PATH=$PATH py-spy record -d 5 -o /tmp/perf$TRACE_PID.svg -p $TRACE_PID &&
  17. google-chrome /tmp/perf$TRACE_PID.svg