Rack applications servers are not forking at each request, only during initialization:
- First, the environment is loaded in one process
- Then, the server fork several workers
- Then all requests are distributed among these processes
That's why the Garbage collector is used to keep each process memory clean & stable.