Mercurial > hg > nginx-vendor-current
comparison src/core/ngx_crc32.c @ 274:052a7b1d40e5 NGINX_0_5_7
nginx 0.5.7
*) Feature: the ssl_session_cache storage optimization.
*) Bugfixes in the "ssl_session_cache" and "limit_zone" directives.
*) Bugfix: the segmentation fault was occurred on start or while
reconfiguration if the "ssl_session_cache" or "limit_zone"
directives were used on 64-bit platforms.
*) Bugfix: a segmentation fault occurred if the "add_before_body" or
"add_after_body" directives were used and there was no
"Content-Type" header line in response.
*) Bugfix: the OpenSSL library was always built with the threads
support.
Thanks to Den Ivanov.
*) Bugfix: the PCRE-6.5+ library and the icc compiler compatibility.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 15 Jan 2007 00:00:00 +0300 |
parents | 6eb1e38f0f1f |
children | b743d290eb3b |
comparison
equal
deleted
inserted
replaced
273:60df8db42ffb | 274:052a7b1d40e5 |
---|---|
11 /* | 11 /* |
12 * The code and lookup tables are based on the algorithm | 12 * The code and lookup tables are based on the algorithm |
13 * described at http://www.w3.org/TR/PNG/ | 13 * described at http://www.w3.org/TR/PNG/ |
14 * | 14 * |
15 * The 256 element lookup table takes 1024 bytes, and it may be completely | 15 * The 256 element lookup table takes 1024 bytes, and it may be completely |
16 * cached after processing about 30-60 bytes. So for short messages | 16 * cached after processing about 30-60 bytes of data. So for short data |
17 * we use the 16 element lookup table that takes only 64 bytes and align it | 17 * we use the 16 element lookup table that takes only 64 bytes and align it |
18 * to CPU cache line size. Of course, the small table adds code inside | 18 * to CPU cache line size. Of course, the small table adds code inside |
19 * CRC32 cycle, but cache misses overhead is bigger than overhead of | 19 * CRC32 loop, but the cache misses overhead is bigger than overhead of |
20 * the additional code. For example, ngx_crc32_short() of 16 byte message | 20 * the additional code. For example, ngx_crc32_short() of 16 bytes of data |
21 * takes half as much CPU clocks than ngx_crc32_long(). | 21 * takes half as much CPU clocks than ngx_crc32_long(). |
22 */ | 22 */ |
23 | 23 |
24 | 24 |
25 static uint32_t ngx_crc32_table16[] = { | 25 static uint32_t ngx_crc32_table16[] = { |