Commit Graph

6 Commits

Author SHA1 Message Date
Maxim Dounin
c93cb45ae3 Core: changed ngx_queue_sort() to use merge sort.
This improves nginx startup times significantly when using very large number
of locations due to computational complexity of the sorting algorithm being
used: insertion sort is O(n*n) on average, while merge sort is O(n*log(n)).
In particular, in a test configuration with 20k locations total startup
time is reduced from 8 seconds to 0.9 seconds.

Prodded by Yusuke Nojima,
https://mailman.nginx.org/pipermail/nginx-devel/2023-September/NUL3Y2FPPFSHMPTFTL65KXSXNTX3NQMK.html
2023-10-18 04:30:11 +03:00
Maxim Konovalov
f8d59e33f3 Copyright updated. 2012-01-18 15:07:43 +00:00
Igor Sysoev
5cdc511fcd new ngx_queue functions 2008-05-24 14:10:01 +00:00
Igor Sysoev
2204d9f09d style fix 2007-12-21 15:24:59 +00:00
Igor Sysoev
0134d6b622 ngx_queue_init() 2007-12-03 11:21:07 +00:00
Igor Sysoev
48bf997e10 ngx_queue.h 2007-11-23 16:32:50 +00:00