Hello! On Fri, Feb 14, 2014 at 04:59:26PM -0500, atarob wrote:
> Looking through the codebase, I see a lot of very short helper like > functions that are defined in .c files with prototypes in .h files. This > means that the compiler cannot inline them outside of that .c file. Am I > wrong? How is that not a performance hit? In no particular order: - As already pointed out, smart enough compilers can inline whatever they want. - Adding all functions to .h files results in unmanagable code, so there should be a bar somewhere. - In many cases inlining may actually be a bad idea even from performance point of view, see, e.g., [1]. - If inlining is considired to be beneficial, in most cases nginx uses macros rather than inline functions, see, e.g., src/core/ngx_queue.h. If you think there are functions which needs be be made inlineable - feel free to suggest. [1] http://stackoverflow.com/questions/1932311/when-to-use-inline-function-and-when-not-to-use-it -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
