On Wednesday 09 April 2014 04:55:42 nginxsantos wrote: > Nginx when it accepts a connection, it creates a memory pool for that > connection (allocating from heap). After which further memory requirement > for that connection will be allocated from that pool. This is good. > But, why don't we pre create the memory pools depending upon the number of > connections and use that pool. In the current approach if some connections > are coming up going down., we will be allocating and freeing to heap > frequently. > > Can someone please clarify why this has been done like this? >
System allocators are usually smart enough to not transform every malloc() into syscall. One of the main benefits provided by these pools is convenient memory management for C program that allows to not care much about corresponding free() calls and memory leaks. So usually every pool is attached to some object with a clear life cycle, like a request or a connection. wbr, Valentin V. Bartenev _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
