Mercurial > hg > nginx
comparison src/core/ngx_crc32.c @ 1021:8902a211b00e
fix comment
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 12 Jan 2007 18:05:41 +0000 |
parents | 45df22906c12 |
children | 8c696afe46b3 |
comparison
equal
deleted
inserted
replaced
1020:c95800738d2c | 1021:8902a211b00e |
---|---|
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[] = { |