Hi jacktby, PostgreSQL is literally a large and complicated program in C. Thus it can be profiled as such. E.g. you can use `perf` and build flamegraphs using `perf record`. Often pgbench is an adequate tool to compare before and after results.There are many other tools available depending on what exactly you want to profile - CPU, lock contention, disk I/O, etc. People write books (plural) on the subject. Personally I would recommend "System Performance, Enterprise and the Cloud, 2nd Edition" and "BPF Performance Tools" by Brendan Gregg.
-- Best regards, Aleksander Alekseev