Hi, On 2023-08-30 10:57:10 +0200, Daniel Gustafsson wrote: > > On 28 Aug 2023, at 14:32, Daniel Gustafsson <dan...@yesql.se> wrote: > > > Attached is a patch with a quick PoC for using PQPing instead of using psql > > for > > connection checks in pg_regress. > > The attached v2 fixes a silly mistake which led to a compiler warning.
Still seems like a good idea to me. To see what impact it has, I measured the time running the pg_regress tests that take less than 6s on my machine - I excluded the slower ones (like the main regression tests) because they'd hide any overall difference. ninja && m test --suite setup --no-rebuild && tests=$(m test --no-rebuild --list|grep -E '/regress'|grep -vE '(regress|postgres_fdw|test_integerset|intarray|amcheck|test_decoding)/regress'|cut -d' ' -f 3) && time m test --no-rebuild $tests Time for: master: cassert: real 0m5.265s user 0m8.422s sys 0m8.381s optimized: real 0m4.926s user 0m6.356s sys 0m8.263s my patch (probing every 100ms with psql): cassert: real 0m3.465s user 0m8.827s sys 0m8.579s optimized: real 0m2.932s user 0m6.596s sys 0m8.458s Daniel's (probing every 50ms with PQping()): cassert: real 0m3.347s user 0m8.373s sys 0m8.354s optimized: real 0m2.527s user 0m6.156s sys 0m8.315s My patch increased user/sys time a bit (likely due to a higher number of futile psql forks), but Daniel's doesn't. And it does show a nice overall wall clock time saving. Greetings, Andres Freund