Speedup and increase usability of set proc title functions
David Rowley <drowley@postgresql.org>
Speedup and increase usability of set proc title functions The setting of the process title could be seen on profiles of very fast-to-execute queries. In many locations where we call set_ps_display() we pass along a string constant, the length of which is known during compilation. Here we effectively rename set_ps_display() to set_ps_display_with_len() and then add a static inline function named set_ps_display() which calls strlen() on the given string. This allows the compiler to optimize away the strlen() call when dealing with call sites passing a string constant. We can then also use memcpy() instead of strlcpy() to copy the string into the destination buffer. That's significantly faster than strlcpy's byte-at-a-time way of copying. Here we also take measures to improve some code which was adjusting the process title to add a " waiting" suffix to it. Call sites which require this can now just call set_ps_display_suffix() to add or adjust the suffix and call set_ps_display_remove_suffix() to remove it again. Reviewed-by: Andres Freund Discussion: https://postgr.es/m/CAApHDvocBvvk-0gWNA2Gohe+sv9fMcv+fK_G+siBKJrgDG4O7g@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/replication/syncrep.c | modified | +7 −17 |
| src/backend/storage/buffer/bufmgr.c | modified | +9 −16 |
| src/backend/storage/ipc/standby.c | modified | +9 −18 |
| src/backend/storage/lmgr/lock.c | modified | +6 −26 |
| src/backend/tcop/postgres.c | modified | +9 −2 |
| src/backend/utils/misc/ps_status.c | modified | +143 −15 |
| src/include/utils/ps_status.h | modified | +16 −1 |
Discussion
- Make set_ps_display faster and easier to use 4 messages · 2023-02-16 → 2023-02-20