Hello! On Tue, Apr 15, 2014 at 03:52:04AM -0400, trapni wrote:
> Hey, I just found you via Google as I was trying to find out why ..... Nginx > is not supporting dynamic loading of modules, for the very obvious issues > the other posters seem to have too. > > However, Maxim, you claim, that one reason is performance. While performance > of course matters, I'd like to know why you say so. > Can you please go a little bit more into the technical details why a dynamic > loaded module does not perform as well as a statically linked "module"? > > Of course, a compiler could use global optimization techniques to perform > interprocedual optimizations, but I don't believe (yet), that the impact > shall be that high. > 2nd) statically linked libraries speed up process bootup, but this is > neglect-able for a long-running process. > 3rd) of course, at least for the core modules, they could use #ifdef's > inside the request structs and friends (just as you stated) in order to > further optimize resource (ie. memory) usage. > > So, I'm only interested in the performance arguments (not zero-downtime > upgrade,...), so I can understand a little better. In addition to the above, calling functions from dynamically linked libraries implies additional indirection, hence it's expected to be slower. I don't think that speed difference is a major problem though, most likely it will be small. It's just one of the reasons in the list. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
