Skip unnecessary stat() calls in walkdir().
Thomas Munro <tmunro@postgresql.org>
Skip unnecessary stat() calls in walkdir(). Some kernels can tell us the type of a "dirent", so we can avoid a call to stat() or lstat() in many cases. Define a new function get_dirent_type() to contain that logic, for use by the backend and frontend versions of walkdir(), and perhaps other callers in future. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Reviewed-by: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com> Discussion: https://postgr.es/m/CA%2BhUKG%2BFzxupGGN4GpUdbzZN%2Btn6FQPHo8w0Q%2BAPH5Wz8RG%2Bww%40mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/storage/file/fd.c | modified | +16 −17 |
| src/common/file_utils.c | modified | +91 −18 |
| src/common/Makefile | modified | +1 −1 |
| src/include/common/file_utils.h | modified | +18 −2 |
| src/tools/msvc/Mkvcbuild.pm | modified | +2 −2 |
| src/tools/pgindent/typedefs.list | modified | +1 −0 |
Discussion
- A micro-optimisation for walkdir() 29 messages · 2020-09-02 → 2020-09-14