Remix.run Logo
hugodutka 5 hours ago

Cloning a template is IO-heavy. You can speed it up further by putting postgres on a ramdisk.

brandur 3 hours ago | parent | next [-]

Peter actually makes this exact point in the project's README. See this section here:

https://github.com/peterldowns/pgtestdb#how-do-i-make-it-go-...

I'd just say that a nice thing about it on disk (even if you disable fsync) is that in case of a failing test, you can examine the post-run state which is occasionally extremely valuable.

peterldowns 2 hours ago | parent [-]

Yup! If you keep your laptop on, failing dbs are investigable on tmpfs too — works fine for debugging a few tests in a loop, just can’t run the tests, sleep the computer, have lunch, and come back.

brandur an hour ago | parent [-]

Ah yep, good point. I was confusing "ramdisk" versus just "ephemeral in-memory".

ltbarcly3 4 hours ago | parent | prev [-]

Just turning off fsync is basically just as fast as a ramdisk and you can't use up all your memory with one big test.

koolba 4 hours ago | parent | next [-]

Turning off synchronous_commit gets you most of the way without ever worrying about data corruption if something crashes mid way through.

https://www.postgresql.org/docs/current/wal-async-commit.htm...

leontrolski 3 hours ago | parent | prev [-]

Agreed, benchmarking, I only see a slight speedup on MacOS - https://github.com/leontrolski/postgresql-testing#:~:text=ra...