backendをprofileする

backendをプロファイルしたいときは,configureを実行する前に,
CFLAGS="-g -pg"; export CFLAGS
などとして,CFLAGSに-pgを設定してからビルドする。
linuxの場合は,
CFLAGS="-g -pg -DLINUX_PROFILE"; export CFLAGS
などとする。

あとは普通にpostgresqlを起動すれば,($PGDATA)/base/(dboid)に,
gmon.outが出力されるようになる。
たとえばpsqlなどのclientで接続してテストしたいSQLを実行したあと、
psqlを終了すると,そのときのbackendのgmon.outが上記の位置に出来る。
(pg_ctl stopなどでpostgresqlを停止すると,postmasterのgmon.outで
上書きされるので注意)

また、psqlなどのクライアントアプリのプロファイル結果は、
カレントディレクトリに作成される。

gmon.outのあるディレクトリで,gprof $POSTGRES_HOME/bin/postgresとすれば,
profile結果が出力される。