Mercurial > hg > nginx-quic
view auto/lib/test @ 5991:435ee290c2e1
Upstream hash: speedup consistent hash init.
Repeatedly calling ngx_http_upstream_add_chash_point() to create
the points array in sorted order, is O(n^2) to the total weight.
This can cause nginx startup and reconfigure to be substantially
delayed. For example, when total weight is 1000, startup takes
5s on a modern laptop.
Replace this with a linear insertion followed by QuickSort and
duplicates removal. Startup for total weight of 1000 reduces to 40ms.
Based on a patch by Wai Keen Woon.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Mon, 02 Mar 2015 18:41:29 +0300 |
parents | 434548349838 |
children |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. echo $ngx_n "checking for $ngx_lib ...$ngx_c" cat << END >> $NGX_AUTOCONF_ERR ---------------------------------------- checking for $ngx_lib END ngx_found=no cat << END > $NGX_AUTOTEST.c $ngx_lib_incs int main() { $ngx_lib_test; return 0; } eval "$CC $cc_test_flags $ngx_lib_cflags \ -o $NGX_AUTOTEST $NGX_AUTOTEST.c $ngx_libs \ >> $NGX_ERR 2>&1" if [ -x $NGX_AUTOTEST ]; then echo " found" ngx_found=yes else echo " not found" fi rm -rf $NGX_AUTOTEST*