How a fix in Go 1.9 sped up our Gitaly service by 30x
"Recompiling with Go 1.9 solved the problem, thanks to the switch to posix_spawn"I never understood why so many people use fork() instead of POSIX spawn(). For example OpenJDK (Java) also does this as the default for starting a process. Which leads to interesting results when you use it on a OS which does do memory over committing like Solaris. Since the process briefly doubles in memory use with fork() your process will die with an out of memory error.