根据PostgreSQL文档,打开 jit_profiling_support ,PostgreSQL生成允许性能的数据。
https://www.postgresql.org/docs/12/runtime-config-developer.html
如果LLVM具有所需的功能,则发出允许perf剖析JIT生成的功能所需的数据。这会将文件写到$ HOME / .debug / jit /;
现在,我将 jit_profiling_support 设置为启用并执行一些查询。
testdb=# show jit_profiling_support;
jit_profiling_support
-----------------------
on
(1 row)
当然,它会将文件生成到$ HOME / .debug / jit/。
/home/postgres/.debug/jit/llvm-IR-jit-20191216-a64065:
total 12
drwx------ 2 postgres postgres 4096 Dec 16 13:47 .
drwx------ 12 postgres postgres 4096 Dec 17 14:08 ..
-rw------- 1 postgres postgres 2030 Dec 16 13:47 jit-3880.dump
但是,我无法转储文件。我尝试用perf进行阅读,但失败了(如下所示)。
$ perf report -v -i /home/postgres/.debug/jit/llvm-IR-jit-20191216-a64065/jit-3880.dump
magic/endian check failed
incompatible file format (rerun with -v to learn more)
如何读取此文件?