On Wednesday 28 October 2015 15:24:39 Lev Brouk wrote: > Valentin and Joel, > It would appear that a part of Joel's (and my own) concern could be > alleviated if ngx_array_push called ngx_pfree on the old memory block after > it grew it in > https://github.com/nginx/nginx/blob/master/src/core/ngx_array.c#L76. I > understand that (a) doing this would still leak all the "small" allocs, and > (b) ngx_pfree call is potentially slow since it walks the chain of large > allocations in the pool. But that could be an option, perhaps?
We usually don't have so big arrays in nginx that ngx_pfree can free. So, calling it will be waste of CPU cycles most of the time. > That aside, I too am wondering what memory management options (other than > malloc) are available for data structures with long lifespans, or if there > are any relevant development plans. It is certainly appealing to be able to > use ngx_array_t and ngx_list_t in these "long-lived" use-cases. AFAIK, no any dev plans at the moment. I'd suggest just to implement some simple reuse mechanism for your data structures. That's what nginx does for its chains and buffers that are reused during the processing of request. wbr, Valentin V. Bartenev _______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
