> The next time I'm doing some performance testing I'll try to quantify how
> much damage the expensive ones do by playing with pg_config_manual.h.
> Normally I'm testing with 1GB+ of shared_buffers which makes the current
> assert scheme unusable.
There is a commit-time scan of the buffers for the sole purpose of
asserting a few things about their state. That's one of the things
we'd need to turn off for a "cheap asserts only" mode I think.
If you want to try to quantify what "cheap asserts" might do, you
should pull out the #ifdef USE_ASSERT_CHECKING code here:
check_list_invariants in list.c
the loops in AtEOXact_Buffers and AtEOXact_LocalBuffers
the loop in AtEOXact_CatCache
the test that makes AtEOXact_RelationCache scan the relcache
even when !need_eoxact_work
in addition to the memory-related stuff.
regards, tom lane