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[] = {