I was reading up on CGI and FastCGI and wondered why the later was created. The reason I often read is that it spares the overhead of creating a new process for every request, but I can't imagine this to be such a huge performance problem.
I see, that CGI could be slow when using interpreted scripts (like Perl) for every request, because the interpreter needs time to start up and load libraries. How is FastCGI an improvement over CGI when using a compiled language like C or Rust?
Couldn't I just recreate what FastCGI does by starting a daemon, that is contacted by small (and thus well performing) CGI shell scripts?