mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
Gzip: compatibility with recent zlib-ng 2.2.x versions.
It now uses 5/4 times more memory for the pending buffer. Further, a single allocation is now used, which takes additional 56 bytes for deflate_allocs in 64-bit mode aligned to 16, to store sub-allocation pointers, and the total allocation size now padded up to 128 bytes, which takes theoretically 200 additional bytes in total. This fits though into "4 * (64 + sizeof(void*))" additional space for ZALLOC used in zlib-ng 2.1.x versions. The comment was updated to reflect this.
This commit is contained in:
parent
16f4b1934f
commit
09cda9195c
@ -516,8 +516,10 @@ ngx_http_gzip_filter_memory(ngx_http_request_t *r, ngx_http_gzip_ctx_t *ctx)
|
|||||||
/*
|
/*
|
||||||
* Another zlib variant, https://github.com/zlib-ng/zlib-ng.
|
* Another zlib variant, https://github.com/zlib-ng/zlib-ng.
|
||||||
* It used to force window bits to 13 for fast compression level,
|
* It used to force window bits to 13 for fast compression level,
|
||||||
* uses (64 + sizeof(void*)) additional space on all allocations
|
* used (64 + sizeof(void*)) additional space on all allocations
|
||||||
* for alignment, 16-byte padding in one of window-sized buffers,
|
* for alignment and 16-byte padding in one of window-sized buffers,
|
||||||
|
* uses a single allocation with up to 200 bytes for alignment and
|
||||||
|
* internal pointers, 5/4 times more memory for the pending buffer,
|
||||||
* and 128K hash.
|
* and 128K hash.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -526,7 +528,7 @@ ngx_http_gzip_filter_memory(ngx_http_request_t *r, ngx_http_gzip_ctx_t *ctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ctx->allocated = 8192 + 16 + (1 << (wbits + 2))
|
ctx->allocated = 8192 + 16 + (1 << (wbits + 2))
|
||||||
+ 131072 + (1 << (memlevel + 8))
|
+ 131072 + (5 << (memlevel + 6))
|
||||||
+ 4 * (64 + sizeof(void*));
|
+ 4 * (64 + sizeof(void*));
|
||||||
ctx->zlib_ng = 1;
|
ctx->zlib_ng = 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user