diff --git a/NEWS b/NEWS index 9da9ba27..d54f2fbd 100644 --- a/NEWS +++ b/NEWS @@ -1,2 +1,6 @@ +v.0.7.1 +- tornado updated to version 0.6a +- lz5/lz5hc updated to version r131b + v0.7 The first release for GitHub diff --git a/README.md b/README.md index d742ec7f..0f5a425f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Introduction ------------------------- -lzbench is an in-memory benchmark of the fastest open-source LZ77/LZSS compressors. It joins all compressors into a single exe. +lzbench is an in-memory benchmark of open-source LZ77/LZSS/LZMA compressors. It joins all compressors into a single exe. At the beginning an input file is read to memory. Then all compressors are used to compress and decompress the file and decompressed file is verified. This approach has a big advantage of using the same compiler with the same optimizations for all compressors. @@ -17,7 +17,7 @@ usage: lzbench [options] input_file where options are: -iX: selects number of iterations (default 1) and displays best time of X iterations. -bX: divides input data in blocks/chunks of size X KB (default = 2097152 KB) - -sX: selects only compressors with compression speed over X MB (default = 100 MB) - so far it's only approximation + -sX: selects only compressors with compression speed over X MB (default = 100 MB) ``` @@ -44,7 +44,7 @@ csc 3.3 density 0.12.5 beta fastlz 0.1 lz4/lz4hc r131 -lz5/lz5hc r131 +lz5/lz5hc r131b lzf lzham 1.0 lzjb 2010 @@ -57,7 +57,7 @@ quicklz 1.5.0 quicklz 1.5.1 b7 shrinker snappy 1.1.3 -tornado 0.6 +tornado 0.6a ucl 1.03 yappy zlib 1.2.8 diff --git a/_lzbench/compressors.cpp b/_lzbench/compressors.cpp index 8ea516d6..41ee43ad 100644 --- a/_lzbench/compressors.cpp +++ b/_lzbench/compressors.cpp @@ -7,7 +7,7 @@ #include "brotli/enc/encode.h" #include "brotli/dec/decode.h" -size_t bench_brotli_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_brotli_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { brotli::BrotliParams p; p.quality = level; @@ -16,7 +16,7 @@ size_t bench_brotli_compress(char *inbuf, size_t insize, char *outbuf, size_t ou size_t actual_osize = outsize; return brotli::BrotliCompressBuffer(p, insize, (const uint8_t*)inbuf, &actual_osize, (uint8_t*)outbuf) == 0 ? 0 : actual_osize; } -size_t bench_brotli_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_brotli_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { size_t actual_osize = outsize; return BrotliDecompressBuffer(insize, (const uint8_t*)inbuf, &actual_osize, (uint8_t*)outbuf) == 0 ? 0 : actual_osize; @@ -30,12 +30,12 @@ size_t bench_brotli_decompress(char *inbuf, size_t insize, char *outbuf, size_t #ifndef BENCH_REMOVE_CRUSH #include "crush/crush.hpp" -size_t bench_crush_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_crush_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return crush::compress(level, (uint8_t*)inbuf, insize, (uint8_t*)outbuf); } -size_t bench_crush_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_crush_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return crush::decompress((uint8_t*)inbuf, (uint8_t*)outbuf, outsize); } @@ -82,7 +82,7 @@ size_t stdio_write(void *p, const void *buf, size_t size) return size; } -size_t bench_csc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t dict_size, size_t) +int64_t lzbench_csc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t dict_size, size_t) { MemSeqStream isss, osss; CSCProps p; @@ -113,7 +113,7 @@ size_t bench_csc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsi return osss.len; } -size_t bench_csc_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_csc_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { MemSeqStream isss, osss; CSCProps p; @@ -145,7 +145,7 @@ extern "C" #include "density/density_api.h" } -size_t bench_density_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_density_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { density_buffer_processing_result result = density_buffer_compress((uint8_t *)inbuf, insize, (uint8_t *)outbuf, outsize, (DENSITY_COMPRESSION_MODE)level, DENSITY_BLOCK_TYPE_DEFAULT, NULL, NULL); if (result.state) @@ -154,7 +154,7 @@ size_t bench_density_compress(char *inbuf, size_t insize, char *outbuf, size_t o return result.bytesWritten; } -size_t bench_density_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_density_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { density_buffer_processing_result result = density_buffer_decompress((uint8_t *)inbuf, insize, (uint8_t *)outbuf, outsize, NULL, NULL); if (result.state) @@ -173,12 +173,12 @@ extern "C" #include "fastlz/fastlz.h" } -size_t bench_fastlz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_fastlz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return fastlz_compress_level(level, inbuf, insize, outbuf); } -size_t bench_fastlz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_fastlz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return fastlz_decompress(inbuf, insize, outbuf, outsize); } @@ -192,22 +192,22 @@ size_t bench_fastlz_decompress(char *inbuf, size_t insize, char *outbuf, size_t #include "lz4/lz4.h" #include "lz4/lz4hc.h" -size_t bench_lz4_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lz4_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return LZ4_compress_default(inbuf, outbuf, insize, outsize); } -size_t bench_lz4fast_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lz4fast_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return LZ4_compress_fast(inbuf, outbuf, insize, outsize, level); } -size_t bench_lz4hc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lz4hc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return LZ4_compress_HC(inbuf, outbuf, insize, outsize, level); } -size_t bench_lz4_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_lz4_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return LZ4_decompress_safe(inbuf, outbuf, insize, outsize); } @@ -220,22 +220,22 @@ size_t bench_lz4_decompress(char *inbuf, size_t insize, char *outbuf, size_t out #include "lz5/lz5.h" #include "lz5/lz5hc.h" -size_t bench_lz5_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lz5_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return LZ5_compress_default(inbuf, outbuf, insize, outsize); } -size_t bench_lz5fast_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lz5fast_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return LZ5_compress_fast(inbuf, outbuf, insize, outsize, level); } -size_t bench_lz5hc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lz5hc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return LZ5_compress_HC(inbuf, outbuf, insize, outsize, level); } -size_t bench_lz5_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_lz5_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return LZ5_decompress_safe(inbuf, outbuf, insize, outsize); } @@ -250,14 +250,14 @@ extern "C" #include "lzf/lzf.h" } -size_t bench_lzf_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lzf_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { if (level == 0) return lzf_compress(inbuf, insize, outbuf, outsize); return lzf_compress_very(inbuf, insize, outbuf, outsize); } -size_t bench_lzf_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_lzf_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return lzf_decompress(inbuf, insize, outbuf, outsize); } @@ -270,7 +270,7 @@ size_t bench_lzf_decompress(char *inbuf, size_t insize, char *outbuf, size_t out #include "lzham/lzham.h" #include -size_t bench_lzham_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t dict_size, size_t) +int64_t lzbench_lzham_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t dict_size, size_t) { lzham_compress_params comp_params; memset(&comp_params, 0, sizeof(comp_params)); @@ -291,7 +291,7 @@ size_t bench_lzham_compress(char *inbuf, size_t insize, char *outbuf, size_t out return outsize; } -size_t bench_lzham_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t dict_size, size_t) +int64_t lzbench_lzham_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t dict_size, size_t) { lzham_uint32 comp_adler32 = 0; lzham_decompress_params decomp_params; @@ -311,12 +311,12 @@ size_t bench_lzham_decompress(char *inbuf, size_t insize, char *outbuf, size_t o #ifndef BENCH_REMOVE_LZJB #include "lzjb/lzjb2010.h" -size_t bench_lzjb_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lzjb_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return lzjb_compress2010((uint8_t*)inbuf, (uint8_t*)outbuf, insize, outsize, 0); } -size_t bench_lzjb_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_lzjb_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return lzjb_decompress2010((uint8_t*)inbuf, (uint8_t*)outbuf, insize, outsize, 0); } @@ -337,7 +337,7 @@ static void *SzAlloc(void *p, size_t size) { p = p; return MyAlloc(size); } static void SzFree(void *p, void *address) { p = p; MyFree(address); } static ISzAlloc g_Alloc = { SzAlloc, SzFree }; -size_t bench_lzma_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lzma_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { char rs[800] = { 0 }; CLzmaEncProps props; @@ -363,7 +363,7 @@ size_t bench_lzma_compress(char *inbuf, size_t insize, char *outbuf, size_t outs return LZMA_PROPS_SIZE + out_len; } -size_t bench_lzma_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_lzma_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { char rs[800] = { 0 }; int res; @@ -386,7 +386,7 @@ size_t bench_lzma_decompress(char *inbuf, size_t insize, char *outbuf, size_t ou #ifndef BENCH_REMOVE_LZMAT #include "lzmat/lzmat.h" -size_t bench_lzmat_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lzmat_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { uint32_t complen = outsize; if (lzmat_encode((uint8_t*)outbuf, &complen, (uint8_t*)inbuf, insize) != 0) @@ -394,7 +394,7 @@ size_t bench_lzmat_compress(char *inbuf, size_t insize, char *outbuf, size_t out return complen; } -size_t bench_lzmat_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_lzmat_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { uint32_t decomplen = outsize; if (lzmat_decode((uint8_t*)outbuf, &decomplen, (uint8_t*)inbuf, insize) != 0) @@ -416,7 +416,7 @@ size_t bench_lzmat_decompress(char *inbuf, size_t insize, char *outbuf, size_t o #include "lzo/lzo1z.h" #include "lzo/lzo2a.h" -size_t bench_lzo_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t workmem, size_t) +int64_t lzbench_lzo_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t workmem, size_t) { lzo_uint lzo_complen = 0; int res; @@ -447,7 +447,7 @@ size_t bench_lzo_compress(char *inbuf, size_t insize, char *outbuf, size_t outsi return lzo_complen; } -size_t bench_lzo_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_lzo_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { lzo_uint decomplen = 0; @@ -485,7 +485,7 @@ extern "C" #include "lzrw/lzrw.h" } -size_t bench_lzrw_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t workmem, size_t) +int64_t lzbench_lzrw_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t workmem, size_t) { uint32_t complen = 0; switch (level) @@ -501,7 +501,7 @@ size_t bench_lzrw_compress(char *inbuf, size_t insize, char *outbuf, size_t outs return complen; } -size_t bench_lzrw_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t workmem, size_t) +int64_t lzbench_lzrw_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t workmem, size_t) { uint32_t decomplen = 0; switch (level) @@ -523,12 +523,12 @@ size_t bench_lzrw_decompress(char *inbuf, size_t insize, char *outbuf, size_t ou #ifndef BENCH_REMOVE_PITHY #include "pithy/pithy.h" -size_t bench_pithy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_pithy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return pithy_Compress(inbuf, insize, outbuf, outsize, level); } -size_t bench_pithy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_pithy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { size_t res = pithy_Decompress(inbuf, insize, outbuf, outsize); // printf("insize=%lld outsize=%lld res=%lld\n", insize, outsize, res); @@ -544,7 +544,7 @@ size_t bench_pithy_decompress(char *inbuf, size_t insize, char *outbuf, size_t o #include "quicklz/quicklz151b7.h" #include "quicklz/quicklz.h" -size_t bench_quicklz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t state, size_t) +int64_t lzbench_quicklz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t state, size_t) { switch (level) { @@ -556,7 +556,7 @@ size_t bench_quicklz_compress(char *inbuf, size_t insize, char *outbuf, size_t o } } -size_t bench_quicklz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t dstate, size_t) +int64_t lzbench_quicklz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t dstate, size_t) { switch (level) { @@ -575,12 +575,12 @@ size_t bench_quicklz_decompress(char *inbuf, size_t insize, char *outbuf, size_t #ifndef BENCH_REMOVE_SHRINKER #include "shrinker/shrinker.h" -size_t bench_shrinker_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_shrinker_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return shrinker_compress(inbuf, outbuf, insize); } -size_t bench_shrinker_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_shrinker_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return shrinker_decompress(inbuf, outbuf, outsize); } @@ -591,13 +591,13 @@ size_t bench_shrinker_decompress(char *inbuf, size_t insize, char *outbuf, size_ #ifndef BENCH_REMOVE_SNAPPY #include "snappy/snappy.h" -size_t bench_snappy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_snappy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { snappy::RawCompress(inbuf, insize, outbuf, &outsize); return outsize; } -size_t bench_snappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_snappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { snappy::RawUncompress(inbuf, insize, outbuf); return outsize; @@ -611,12 +611,12 @@ size_t bench_snappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t #ifndef BENCH_REMOVE_TORNADO #include "tornado/tor_test.h" -size_t bench_tornado_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_tornado_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return tor_compress(level, (uint8_t*)inbuf, (uint8_t*)outbuf, insize); } -size_t bench_tornado_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_tornado_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return tor_decompress((uint8_t*)inbuf, (uint8_t*)outbuf, insize); } @@ -628,7 +628,7 @@ size_t bench_tornado_decompress(char *inbuf, size_t insize, char *outbuf, size_t #ifndef BENCH_REMOVE_UCL #include "ucl/ucl.h" -size_t bench_ucl_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t algo, size_t level, size_t) +int64_t lzbench_ucl_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t algo, size_t level, size_t) { ucl_uint complen; int res; @@ -645,7 +645,7 @@ size_t bench_ucl_compress(char *inbuf, size_t insize, char *outbuf, size_t outsi return complen; } -size_t bench_ucl_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t algo, size_t level, size_t) +int64_t lzbench_ucl_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t algo, size_t level, size_t) { ucl_uint decomplen; int res; @@ -669,7 +669,7 @@ size_t bench_ucl_decompress(char *inbuf, size_t insize, char *outbuf, size_t out #ifndef BENCH_REMOVE_WFLZ #include "wflz/wfLZ.h" -size_t bench_wflz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t workmem, size_t) +int64_t lzbench_wflz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t workmem, size_t) { if (level == 1) return wfLZ_CompressFast((const uint8_t*)inbuf, insize, (uint8_t*)outbuf, (uint8_t*)workmem, 0); @@ -677,7 +677,7 @@ size_t bench_wflz_compress(char *inbuf, size_t insize, char *outbuf, size_t outs return wfLZ_Compress((const uint8_t*)inbuf, insize, (uint8_t*)outbuf, (uint8_t*)workmem, 0); } -size_t bench_wflz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_wflz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { wfLZ_Decompress((const uint8_t*)inbuf, (uint8_t*)outbuf); return outsize; @@ -690,12 +690,12 @@ size_t bench_wflz_decompress(char *inbuf, size_t insize, char *outbuf, size_t ou #ifndef BENCH_REMOVE_YAPPY #include "yappy/yappy.hpp" -size_t bench_yappy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_yappy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return YappyCompress((uint8_t*)inbuf, (uint8_t*)outbuf, insize, level) - (uint8_t*)outbuf; } -size_t bench_yappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_yappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return YappyUnCompress((uint8_t*)inbuf, (uint8_t*)inbuf+insize, (uint8_t*)outbuf) - (uint8_t*)outbuf; } @@ -707,7 +707,7 @@ size_t bench_yappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t o #ifndef BENCH_REMOVE_ZLIB #include "zlib/zlib.h" -size_t bench_zlib_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_zlib_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { uLongf zcomplen = insize; int err = compress2((uint8_t*)outbuf, &zcomplen, (uint8_t*)inbuf, insize, level); @@ -716,7 +716,7 @@ size_t bench_zlib_compress(char *inbuf, size_t insize, char *outbuf, size_t outs return zcomplen; } -size_t bench_zlib_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_zlib_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { uLongf zdecomplen = outsize; int err = uncompress((uint8_t*)outbuf, &zdecomplen, (uint8_t*)inbuf, insize); @@ -784,7 +784,7 @@ struct MemOutputter : public baidu::zling::Outputter { } // namespace zling } // namespace baidu -size_t bench_zling_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_zling_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { baidu::zling::MemInputter inputter((uint8_t*)inbuf, insize); baidu::zling::MemOutputter outputter((uint8_t*)outbuf, outsize); @@ -793,7 +793,7 @@ size_t bench_zling_compress(char *inbuf, size_t insize, char *outbuf, size_t out return outputter.GetOutputSize(); } -size_t bench_zling_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_zling_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { baidu::zling::MemInputter inputter((uint8_t*)inbuf, insize); baidu::zling::MemOutputter outputter((uint8_t*)outbuf, outsize); @@ -809,12 +809,12 @@ size_t bench_zling_decompress(char *inbuf, size_t insize, char *outbuf, size_t o #ifndef BENCH_REMOVE_ZSTD #include "zstd/zstd.h" -size_t bench_zstd_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_zstd_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return ZSTD_compress(outbuf, outsize, inbuf, insize); } -size_t bench_zstd_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_zstd_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return ZSTD_decompress(outbuf, outsize, inbuf, insize); } @@ -827,12 +827,12 @@ size_t bench_zstd_decompress(char *inbuf, size_t insize, char *outbuf, size_t ou #ifndef BENCH_REMOVE_ZSTDHC #include "zstd/zstdhc.h" -size_t bench_zstdhc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) +int64_t lzbench_zstdhc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t) { return ZSTD_HC_compress(outbuf, outsize, inbuf, insize, level); } -size_t bench_zstdhc_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) +int64_t lzbench_zstdhc_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t) { return ZSTD_decompress(outbuf, outsize, inbuf, insize); } diff --git a/_lzbench/compressors.h b/_lzbench/compressors.h index 80d174ec..236fc6c8 100644 --- a/_lzbench/compressors.h +++ b/_lzbench/compressors.h @@ -1,247 +1,248 @@ #include +#include // int64_t -typedef size_t (*compress_func)(char *in, size_t insize, char *out, size_t outsize, size_t, size_t, size_t); +typedef int64_t (*compress_func)(char *in, size_t insize, char *out, size_t outsize, size_t, size_t, size_t); #ifndef BENCH_REMOVE_BROTLI - size_t bench_brotli_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_brotli_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_brotli_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_brotli_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_brotli_compress NULL - #define bench_brotli_decompress NULL + #define lzbench_brotli_compress NULL + #define lzbench_brotli_decompress NULL #endif #ifndef BENCH_REMOVE_CRUSH - size_t bench_crush_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_crush_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_crush_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_crush_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_crush_compress NULL - #define bench_crush_decompress NULL + #define lzbench_crush_compress NULL + #define lzbench_crush_decompress NULL #endif #ifndef BENCH_REMOVE_CSC - size_t bench_csc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_csc_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_csc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_csc_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_csc_compress NULL - #define bench_csc_decompress NULL + #define lzbench_csc_compress NULL + #define lzbench_csc_decompress NULL #endif #ifndef BENCH_REMOVE_DENSITY - size_t bench_density_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_density_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_density_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_density_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_density_compress NULL - #define bench_density_decompress NULL + #define lzbench_density_compress NULL + #define lzbench_density_decompress NULL #endif #ifndef BENCH_REMOVE_FASTLZ - size_t bench_fastlz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_fastlz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_fastlz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_fastlz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_fastlz_compress NULL - #define bench_fastlz_decompress NULL + #define lzbench_fastlz_compress NULL + #define lzbench_fastlz_decompress NULL #endif #ifndef BENCH_REMOVE_LZ4 - size_t bench_lz4_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lz4fast_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lz4hc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lz4_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_lz4_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lz4fast_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lz4hc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lz4_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_lz4_compress NULL - #define bench_lz4fast_compress NULL - #define bench_lz4hc_compress NULL - #define bench_lz4_decompress NULL + #define lzbench_lz4_compress NULL + #define lzbench_lz4fast_compress NULL + #define lzbench_lz4hc_compress NULL + #define lzbench_lz4_decompress NULL #endif #ifndef BENCH_REMOVE_LZ5 - size_t bench_lz5_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lz5fast_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lz5hc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lz5_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_lz5_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lz5fast_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lz5hc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lz5_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_lz5_compress NULL - #define bench_lz5fast_compress NULL - #define bench_lz5hc_compress NULL - #define bench_lz5_decompress NULL + #define lzbench_lz5_compress NULL + #define lzbench_lz5fast_compress NULL + #define lzbench_lz5hc_compress NULL + #define lzbench_lz5_decompress NULL #endif #ifndef BENCH_REMOVE_LZF - size_t bench_lzf_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lzf_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_lzf_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lzf_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_lzf_compress NULL - #define bench_lzf_decompress NULL + #define lzbench_lzf_compress NULL + #define lzbench_lzf_decompress NULL #endif #ifndef BENCH_REMOVE_LZHAM - size_t bench_lzham_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lzham_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_lzham_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lzham_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_lzham_compress NULL - #define bench_lzham_decompress NULL + #define lzbench_lzham_compress NULL + #define lzbench_lzham_decompress NULL #endif #ifndef BENCH_REMOVE_LZJB - size_t bench_lzjb_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lzjb_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_lzjb_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lzjb_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_lzjb_compress NULL - #define bench_lzjb_decompress NULL + #define lzbench_lzjb_compress NULL + #define lzbench_lzjb_decompress NULL #endif #ifndef BENCH_REMOVE_LZMA - size_t bench_lzma_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lzma_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_lzma_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lzma_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_lzma_compress NULL - #define bench_lzma_decompress NULL + #define lzbench_lzma_compress NULL + #define lzbench_lzma_decompress NULL #endif #ifndef BENCH_REMOVE_LZMAT - size_t bench_lzmat_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lzmat_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_lzmat_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lzmat_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_lzmat_compress NULL - #define bench_lzmat_decompress NULL + #define lzbench_lzmat_compress NULL + #define lzbench_lzmat_decompress NULL #endif #ifndef BENCH_REMOVE_LZO - size_t bench_lzo_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lzo_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_lzo_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lzo_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_lzo_compress NULL - #define bench_lzo_decompress NULL + #define lzbench_lzo_compress NULL + #define lzbench_lzo_decompress NULL #endif #ifndef BENCH_REMOVE_LZRW - size_t bench_lzrw_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_lzrw_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_lzrw_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_lzrw_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_lzrw_compress NULL - #define bench_lzrw_decompress NULL + #define lzbench_lzrw_compress NULL + #define lzbench_lzrw_decompress NULL #endif #ifndef BENCH_REMOVE_PITHY - size_t bench_pithy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_pithy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_pithy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_pithy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_pithy_compress NULL - #define bench_pithy_decompress NULL + #define lzbench_pithy_compress NULL + #define lzbench_pithy_decompress NULL #endif #ifndef BENCH_REMOVE_QUICKLZ - size_t bench_quicklz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_quicklz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_quicklz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_quicklz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_quicklz_compress NULL - #define bench_quicklz_decompress NULL + #define lzbench_quicklz_compress NULL + #define lzbench_quicklz_decompress NULL #endif #ifndef BENCH_REMOVE_SHRINKER - size_t bench_shrinker_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_shrinker_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_shrinker_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_shrinker_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_shrinker_compress NULL - #define bench_shrinker_decompress NULL + #define lzbench_shrinker_compress NULL + #define lzbench_shrinker_decompress NULL #endif #ifndef BENCH_REMOVE_SNAPPY - size_t bench_snappy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_snappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_snappy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_snappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_snappy_compress NULL - #define bench_snappy_decompress NULL + #define lzbench_snappy_compress NULL + #define lzbench_snappy_decompress NULL #endif #ifndef BENCH_REMOVE_TORNADO - size_t bench_tornado_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_tornado_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_tornado_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_tornado_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_tornado_compress NULL - #define bench_tornado_decompress NULL + #define lzbench_tornado_compress NULL + #define lzbench_tornado_decompress NULL #endif #ifndef BENCH_REMOVE_UCL - size_t bench_ucl_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_ucl_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_ucl_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_ucl_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_ucl_compress NULL - #define bench_ucl_decompress NULL + #define lzbench_ucl_compress NULL + #define lzbench_ucl_decompress NULL #endif #ifndef BENCH_REMOVE_WFLZ - size_t bench_wflz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_wflz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_wflz_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_wflz_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_wflz_compress NULL - #define bench_wflz_decompress NULL + #define lzbench_wflz_compress NULL + #define lzbench_wflz_decompress NULL #endif #ifndef BENCH_REMOVE_YAPPY - size_t bench_yappy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); - size_t bench_yappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_yappy_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, size_t); + int64_t lzbench_yappy_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_yappy_compress NULL - #define bench_yappy_decompress NULL + #define lzbench_yappy_compress NULL + #define lzbench_yappy_decompress NULL #endif #ifndef BENCH_REMOVE_ZLIB - size_t bench_zlib_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); - size_t bench_zlib_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_zlib_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_zlib_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_zlib_compress NULL - #define bench_zlib_decompress NULL + #define lzbench_zlib_compress NULL + #define lzbench_zlib_decompress NULL #endif #ifndef BENCH_REMOVE_ZLING - size_t bench_zling_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); - size_t bench_zling_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_zling_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_zling_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_zling_compress NULL - #define bench_zling_decompress NULL + #define lzbench_zling_compress NULL + #define lzbench_zling_decompress NULL #endif #ifndef BENCH_REMOVE_ZSTD - size_t bench_zstd_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); - size_t bench_zstd_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_zstd_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_zstd_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_zstd_compress NULL - #define bench_zstd_decompress NULL + #define lzbench_zstd_compress NULL + #define lzbench_zstd_decompress NULL #endif #ifndef BENCH_REMOVE_ZSTDHC - size_t bench_zstdhc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); - size_t bench_zstdhc_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_zstdhc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); + int64_t lzbench_zstdhc_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, size_t); #else - #define bench_zstdhc_compress NULL - #define bench_zstdhc_decompress NULL + #define lzbench_zstdhc_compress NULL + #define lzbench_zstdhc_decompress NULL #endif diff --git a/_lzbench/lzbench.cpp b/_lzbench/lzbench.cpp index 464d5fb8..a642c031 100644 --- a/_lzbench/lzbench.cpp +++ b/_lzbench/lzbench.cpp @@ -18,7 +18,8 @@ #define _CRT_SECURE_NO_WARNINGS #define PROGNAME "lzbench" -#define PROGVERSION "0.7" +#define PROGVERSION "0.7.1" +#define LZBENCH_DEBUG(fmt, args...) ;// printf(fmt, ##args) #define MAX(a,b) ((a)>(b))?(a):(b) #ifndef MIN @@ -79,160 +80,222 @@ extern "C" bool show_full_stats = false; bool turbobench_format = false; -void print_stats(const char* func_name, int level, std::vector &ctime, std::vector &dtime, uint32_t insize, uint32_t outsize) +void print_stats(const char* func_name, int level, std::vector &ctime, std::vector &dtime, uint32_t insize, uint32_t outsize, bool decomp_error, int cspeed) { - std::sort(ctime.begin(), ctime.end()); - std::sort(dtime.begin(), dtime.end()); - - uint32_t cmili_fastest = ctime[0]; - uint32_t dmili_fastest = dtime[0]; - uint32_t cmili_med = ctime[ctime.size()/2]; - uint32_t dmili_med = dtime[dtime.size()/2]; - uint32_t cmili_avg = std::accumulate(ctime.begin(),ctime.end(),0) / ctime.size(); - uint32_t dmili_avg = std::accumulate(dtime.begin(),dtime.end(),0) / dtime.size(); - - if (cmili_fastest == 0) cmili_fastest = 1; - if (dmili_fastest == 0) dmili_fastest = 1; - if (cmili_med == 0) cmili_med = 1; - if (dmili_med == 0) dmili_med = 1; - if (cmili_avg == 0) cmili_avg = 1; - if (dmili_avg == 0) dmili_avg = 1; - - - char desc[256]; - snprintf(desc, sizeof(desc), "%s", func_name); - - int len = strlen(func_name); - if (level > 0 && len >= 2) - { - desc[len - 1] += level % 10; - desc[len - 2] += level / 10; - } - - if (show_full_stats) - { - printf("%-19s fastest %d ms (%d MB/s), %d, %d ms (%d MB/s)\n", desc, cmili_fastest, insize / cmili_fastest / 1024, outsize, dmili_fastest, insize / dmili_fastest / 1024); - printf("%-19s median %d ms (%d MB/s), %d, %d ms (%d MB/s)\n", desc, cmili_med, insize / cmili_med / 1024, outsize, dmili_med, insize / dmili_med / 1024); - printf("%-19s average %d ms (%d MB/s), %d, %d ms (%d MB/s)\n", desc, cmili_avg, insize / cmili_avg / 1024, outsize, dmili_avg, insize / dmili_avg / 1024); - } - else - { - if (turbobench_format) - printf("%12d%6.1f%9.2f%9.2f %s\n", outsize, outsize * 100.0/ insize, insize / cmili_fastest / 1024.0, insize / dmili_fastest / 1024.0, desc); - else + std::sort(ctime.begin(), ctime.end()); + std::sort(dtime.begin(), dtime.end()); + + uint32_t cmili_fastest = ctime[0]; + uint32_t dmili_fastest = dtime[0]; + uint32_t cmili_med = ctime[ctime.size()/2]; + uint32_t dmili_med = dtime[dtime.size()/2]; + uint32_t cmili_avg = std::accumulate(ctime.begin(),ctime.end(),0) / ctime.size(); + uint32_t dmili_avg = std::accumulate(dtime.begin(),dtime.end(),0) / dtime.size(); + + if (cmili_fastest == 0) cmili_fastest = 1; + if (dmili_fastest == 0) dmili_fastest = 1; + if (cmili_med == 0) cmili_med = 1; + if (dmili_med == 0) dmili_med = 1; + if (cmili_avg == 0) cmili_avg = 1; + if (dmili_avg == 0) dmili_avg = 1; + + if (cspeed > insize / cmili_fastest / 1024) { LZBENCH_DEBUG("%s FULL slower than %d MB/s, %d\n", func_name, insize / cmili_fastest / 1024); return; } + + char desc[256]; + snprintf(desc, sizeof(desc), "%s", func_name); + + int len = strlen(func_name); + if (level > 0 && len >= 2) + { + desc[len - 1] += level % 10; + desc[len - 2] += level / 10; + } + + if (show_full_stats) + { + printf("%-19s fastest %d ms (%d MB/s), %d, %d ms (%d MB/s)\n", desc, cmili_fastest, insize / cmili_fastest / 1024, outsize, dmili_fastest, insize / dmili_fastest / 1024); + printf("%-19s median %d ms (%d MB/s), %d, %d ms (%d MB/s)\n", desc, cmili_med, insize / cmili_med / 1024, outsize, dmili_med, insize / dmili_med / 1024); + printf("%-19s average %d ms (%d MB/s), %d, %d ms (%d MB/s)\n", desc, cmili_avg, insize / cmili_avg / 1024, outsize, dmili_avg, insize / dmili_avg / 1024); + } + else + { + if (turbobench_format) + printf("%12d%6.1f%9.2f%9.2f %s\n", outsize, outsize * 100.0/ insize, insize / cmili_fastest / 1024.0, insize / dmili_fastest / 1024.0, desc); + else { - printf("| %-27s ", desc); - if (insize / cmili_fastest / 1024 < 10) printf("|%6.2f MB/s ", insize / cmili_fastest / 1024.0); else printf("|%6d MB/s ", insize / cmili_fastest / 1024); - if (insize / dmili_fastest / 1024 < 10) printf("|%6.2f MB/s ", insize / dmili_fastest / 1024.0); else printf("|%6d MB/s ", insize / dmili_fastest / 1024); - printf("|%12d |%6.2f |\n", outsize, outsize * 100.0/ insize); + printf("| %-27s ", desc); + if (insize / cmili_fastest / 1024 < 10) printf("|%6.2f MB/s ", insize / cmili_fastest / 1024.0); else printf("|%6d MB/s ", insize / cmili_fastest / 1024); + if (decomp_error) + printf("| ERROR "); + else + if (insize / dmili_fastest / 1024 < 10) printf("|%6.2f MB/s ", insize / dmili_fastest / 1024.0); else printf("|%6d MB/s ", insize / dmili_fastest / 1024); + printf("|%12d |%6.2f |\n", outsize, outsize * 100.0/ insize); } - } + } - ctime.clear(); - dtime.clear(); + ctime.clear(); + dtime.clear(); }; -uint32_t common(uint8_t *p1, uint8_t *p2, uint32_t count) +size_t common(uint8_t *p1, uint8_t *p2) { - uint32_t size = 0; + size_t size = 0; - while (count-->0) - { - if (*(p1++) != *(p2++)) - break; - size++; - } - - if (count>0) - printf("count=%d %d %d %d %d!=%d %d %d %d\n", count, p1[-1], p1[0], p1[1], p1[2], p2[-1], p2[0], p2[1], p2[2]); + while (*(p1++) == *(p2++)) + size++; return size; } -void check_decompression(uint8_t *inbuf, uint32_t inlen, uint8_t *decomp, uint32_t outlen, std::vector &ctime, std::vector &dtime, uint32_t comp_time, uint32_t decomp_time) +void add_time(std::vector &ctime, std::vector &dtime, uint32_t comp_time, uint32_t decomp_time) { ctime.push_back(comp_time); dtime.push_back(decomp_time); +} - if (inlen != outlen) - printf("ERROR: inlen[%u] != outlen[%u]\n", inlen, outlen); - - if (memcmp(inbuf, decomp, inlen) != 0) - printf("ERROR: common=%d\n", common(inbuf, decomp, inlen)); - memset(decomp, 0, inlen); // clear output buffer - uni_sleep(1); // give processor to other processes +int64_t lzbench_compress(compress_func compress, size_t chunk_size, std::vector &compr_lens, uint8_t *inbuf, size_t insize, uint8_t *outbuf, size_t outsize, size_t param1, size_t param2, size_t param3) +{ + int64_t clen; + size_t part, sum = 0; + uint8_t *start = inbuf; + compr_lens.clear(); + + while (insize > 0) + { + part = MIN(insize, chunk_size); + clen = compress((char*)inbuf, part, (char*)outbuf, outsize, param1, param2, param3); + LZBENCH_DEBUG("part=%lld clen=%lld in=%d\n", part, clen, inbuf-start); + + if (clen <= 0 || clen == part) + { + memcpy(outbuf, inbuf, part); + clen = part; + } + + inbuf += part; + insize -= part; + outbuf += clen; + outsize -= clen; + compr_lens.push_back(clen); + sum += clen; + } + return sum; } -size_t bench_compress(compress_func compress, size_t chunk_size, std::vector &compr_lens, uint8_t *inbuf, size_t insize, uint8_t *outbuf, size_t outsize, size_t param1, size_t param2, size_t param3) +int64_t lzbench_decompress(compress_func decompress, size_t chunk_size, std::vector &compr_lens, uint8_t *inbuf, size_t insize, uint8_t *outbuf, size_t outsize, uint8_t *origbuf, size_t param1, size_t param2, size_t param3) { - size_t clen, part, sum = 0; - compr_lens.clear(); - - while (insize > 0) - { - part = MIN(insize, chunk_size); - clen = compress((char*)inbuf, part, (char*)outbuf, outsize, param1, param2, param3); - if (clen <= 0) return 0; - - // printf("part=%lld clen=%lld\n", part, clen); - inbuf += part; - insize -= part; - outbuf += clen; - outsize -= clen; - compr_lens.push_back(clen); - sum += clen; - } - return sum; + int64_t dlen; + int num=0; + size_t part, sum = 0; + uint8_t *outstart = outbuf; + + while (insize > 0) + { + part = compr_lens[num++]; + if (part > insize) return 0; + if (part == MIN(chunk_size,outsize)) // uncompressed + { + memcpy(outbuf, inbuf, part); + dlen = part; + } + else + { + dlen = decompress((char*)inbuf, part, (char*)outbuf, MIN(chunk_size,outsize), param1, param2, param3); + } + LZBENCH_DEBUG("part=%lld dlen=%lld out=%d\n", part, dlen, outbuf - outstart); + if (dlen <= 0) return dlen; + + inbuf += part; + insize -= part; + outbuf += dlen; + outsize -= dlen; + sum += dlen; + } + + return sum; } -size_t bench_decompress(compress_func decompress, std::vector &compr_lens, uint8_t *inbuf, size_t insize, uint8_t *outbuf, size_t outsize, size_t param1, size_t param2, size_t param3) +void lzbench_test(const char* func_name, int level, compress_func compress, compress_func decompress, int cspeed, size_t chunk_size, int iters, uint8_t *inbuf, size_t insize, uint8_t *compbuf, size_t comprsize, uint8_t *decomp, LARGE_INTEGER ticksPerSecond, size_t param1, size_t param2, size_t param3) { - int num=0; - size_t dlen, part, sum = 0; + LARGE_INTEGER start_ticks, mid_ticks, end_ticks, start_all; + int64_t complen, decomplen; + std::vector ctime, dtime; + std::vector compr_lens; + bool decomp_error = false; + + if (!compress || !decompress) return; + + if (cspeed > 0) + { + uint32_t part = MIN(100*1024,chunk_size); + GetTime(start_ticks); +// lzbench_compress(compress, size, compr_lens, inbuf, size, compbuf, comprsize, param1, param2, param3); + int64_t clen = compress((char*)inbuf, part, (char*)compbuf, comprsize, param1, param2, param3); + GetTime(end_ticks); + uint32_t milisec = GetDiffTime(ticksPerSecond, start_ticks, end_ticks); + // printf("\nclen=%d milisec=%d %s\n", clen, milisec, func_name); + if (clen>0 && milisec>=3) // longer than 3 milisec = slower than 33 MB/s + { + part = part / milisec / 1024; // speed in MB/s + // printf("%s = %d MB/s, %d\n", func_name, part, clen); + if (part < cspeed) { LZBENCH_DEBUG("%s (100K) slower than %d MB/s, %d\n", func_name, part); return; } + } + } + + ITERS(iters) + { + GetTime(start_ticks); + complen = lzbench_compress(compress, chunk_size, compr_lens, inbuf, insize, compbuf, comprsize, param1, param2, param3); + GetTime(mid_ticks); + + uint32_t milisec = GetDiffTime(ticksPerSecond, start_ticks, mid_ticks); + if (complen>0 && milisec>=3) // longer than 3 milisec + { + milisec = insize / milisec / 1024; // speed in MB/s + if (milisec < cspeed) { LZBENCH_DEBUG("%s 1ITER slower than %d MB/s, %d\n", func_name, milisec); return; } + } - while (insize > 0) - { - part = compr_lens[num++]; - if (part > insize) return 0; - dlen = decompress((char*)inbuf, part, (char*)outbuf, outsize, param1, param2, param3); - if (dlen <= 0) return 0; - - // printf("part=%lld dlen=%lld\n", part, dlen); - inbuf += part; - insize -= part; - outbuf += dlen; - outsize -= dlen; - sum += dlen; - } - - return sum; -} + GetTime(mid_ticks); + decomplen = lzbench_decompress(decompress, chunk_size, compr_lens, compbuf, complen, decomp, insize, inbuf, param1, param2, param3); + GetTime(end_ticks); -void bench_test(const char* func_name, int level, compress_func compress, compress_func decompress, size_t chunk_size, int iters, uint8_t *inbuf, size_t insize, uint8_t *compbuf, size_t comprsize, uint8_t *decomp, LARGE_INTEGER ticksPerSecond, size_t param1, size_t param2, size_t param3) -{ - LARGE_INTEGER start_ticks, mid_ticks, end_ticks, start_all; - size_t complen, decomplen; - std::vector ctime, dtime; - std::vector compr_lens; - - if (!compress || !decompress) return; - - ITERS(iters) - { - GetTime(start_ticks); - complen = bench_compress(compress, chunk_size, compr_lens, inbuf, insize, compbuf, comprsize, param1, param2, param3); - GetTime(mid_ticks); - decomplen = bench_decompress(decompress, compr_lens, compbuf, complen, decomp, insize, param1, param2, param3); - GetTime(end_ticks); - check_decompression(inbuf, insize, decomp, decomplen, ctime, dtime, GetDiffTime(ticksPerSecond, start_ticks, mid_ticks), GetDiffTime(ticksPerSecond, mid_ticks, end_ticks)); - } - print_stats(func_name, level, ctime, dtime, insize, complen); + add_time(ctime, dtime, GetDiffTime(ticksPerSecond, start_ticks, mid_ticks), GetDiffTime(ticksPerSecond, mid_ticks, end_ticks)); + + if (insize != decomplen) + { + decomp_error = true; +// printf("ERROR: inlen[%d] != outlen[%d]\n", (int32_t)insize, (int32_t)decomplen); + } + + if (memcmp(inbuf, decomp, insize) != 0) + { + decomp_error = true; +#if 0 + size_t cmn = common(inbuf, decomp); + printf("ERROR in %s: common=%d/%d\n", func_name, (int32_t)cmn, (int32_t)insize); + char desc[256]; + snprintf(desc, sizeof(desc), "%s_failed", func_name); + cmn /= chunk_size; + printf("ERROR: fwrite %d-%d\n", (int32_t)(cmn*chunk_size), (int32_t)((cmn+1)*chunk_size)); + + FILE *f = fopen(desc, "wb"); + if (f) fwrite(inbuf+cmn*chunk_size, 1, chunk_size, f), fclose(f); + exit(0); +#endif + } + + memset(decomp, 0, insize); // clear output buffer + uni_sleep(1); // give processor to other processes + + if (decomp_error) break; + } + print_stats(func_name, level, ctime, dtime, insize, complen, decomp_error, cspeed); } @@ -278,194 +341,161 @@ void benchmark(FILE* in, int iters, uint32_t chunk_size, int cspeed) GetTime(mid_ticks); memcpy(decomp, compbuf, insize); GetTime(end_ticks); - check_decompression(inbuf, insize, decomp, insize, ctime, dtime, GetDiffTime(ticksPerSecond, start_ticks, mid_ticks), GetDiffTime(ticksPerSecond, mid_ticks, end_ticks)); + add_time(ctime, dtime, GetDiffTime(ticksPerSecond, start_ticks, mid_ticks), GetDiffTime(ticksPerSecond, mid_ticks, end_ticks)); } printf("| Compressor name | Compression| Decompress.| Compr. size | Ratio |\n"); - print_stats("memcpy", 0, ctime, dtime, insize, insize); - - qlz150_state_compress* state; - int state_size, dstate_size; - - -/* - if (cspeed <= 487) bench_test("lz4 r131", 0, bench_lz4_compress, bench_lz4_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - for (int level = 1; level <= 16; level+=2) - if (cspeed <= 107) bench_test("lz4hc r131 -00", level, bench_lz4hc_compress, bench_lz4_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); - - - if (cspeed <= 487) bench_test("lz5 r131", 0, bench_lz5_compress, bench_lz5_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + print_stats("memcpy", 0, ctime, dtime, insize, insize, false, 0); - for (int level = 1; level <= 11; level+=2) - if (cspeed <= 107) bench_test("lz5hc r131 -0", level, bench_lz5hc_compress, bench_lz5_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); - goto done; -*/ +// goto done; + goto middle; - if (cspeed <= 102) bench_test("brotli 2015-10-29 level 0", 0, bench_brotli_compress, bench_brotli_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 75) bench_test("brotli 2015-10-29 level 3", 0, bench_brotli_compress, bench_brotli_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 0, 0); - if (cspeed <= 15) bench_test("brotli 2015-10-29 level 6", 0, bench_brotli_compress, bench_brotli_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 6, 0, 0); - if (cspeed <= 4) bench_test("brotli 2015-10-29 level 9", 0, bench_brotli_compress, bench_brotli_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, 0, 0); - if (cspeed <= 0) bench_test("brotli 2015-10-29 level 11", 0, bench_brotli_compress, bench_brotli_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 11, 0, 0); +middle: - if (cspeed <= 33) bench_test("crush 1.0 level 0", 0, bench_crush_compress, bench_crush_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 4) bench_test("crush 1.0 level 1", 0, bench_crush_compress, bench_crush_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 20) bench_test("csc 3.3 level 1", 0, bench_csc_compress, bench_csc_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 1<<24, 0); - if (cspeed <= 13) bench_test("csc 3.3 level 2", 0, bench_csc_compress, bench_csc_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 1<<24, 0); - if (cspeed <= 8) bench_test("csc 3.3 level 3", 0, bench_csc_compress, bench_csc_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 1<<24, 0); - if (cspeed <= 6) bench_test("csc 3.3 level 4", 0, bench_csc_compress, bench_csc_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, 1<<24, 0); - if (cspeed <= 4) bench_test("csc 3.3 level 5", 0, bench_csc_compress, bench_csc_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 5, 1<<24, 0); + lzbench_test("brotli 2015-10-29 level 1", 0, lzbench_brotli_compress, lzbench_brotli_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + for (int level=2; level<=8; level+=3) + lzbench_test("brotli 2015-10-29 level 0", level, lzbench_brotli_compress, lzbench_brotli_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); + lzbench_test("brotli 2015-10-29 level 11", 0, lzbench_brotli_compress, lzbench_brotli_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 11, 0, 0); - if (cspeed <= 742) bench_test("density 0.12.5 beta level 1", 0, bench_density_compress, bench_density_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 463) bench_test("density 0.12.5 beta level 2", 0, bench_density_compress, bench_density_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 0, 0); - if (cspeed <= 178) bench_test("density 0.12.5 beta level 3", 0, bench_density_compress, bench_density_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 0, 0); + lzbench_test("crush 1.0 level 0", 0, lzbench_crush_compress, lzbench_crush_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + lzbench_test("crush 1.0 level 1", 0, lzbench_crush_compress, lzbench_crush_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 236) bench_test("fastlz 0.1 level 1", 0, bench_fastlz_compress, bench_fastlz_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 255) bench_test("fastlz 0.1 level 2", 0, bench_fastlz_compress, bench_fastlz_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 0, 0); + for (int level=1; level<=5; level+=1) + lzbench_test("csc 3.3 level 0", level, lzbench_csc_compress, lzbench_csc_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 1<<24, 0); - if (cspeed <= 487) bench_test("lz4 r131", 0, bench_lz4_compress, bench_lz4_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 533) bench_test("lz4fast r131 acc=3", 0, bench_lz4fast_compress, bench_lz4_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 0, 0); - if (cspeed <= 806) bench_test("lz4fast r131 acc=17", 0, bench_lz4fast_compress, bench_lz4_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 17, 0, 0); - if (cspeed <= 107) bench_test("lz4hc r131 -1", 0, bench_lz4hc_compress, bench_lz4_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 60) bench_test("lz4hc r131 -4", 0, bench_lz4hc_compress, bench_lz4_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, 0, 0); - if (cspeed <= 20) bench_test("lz4hc r131 -9", 0, bench_lz4hc_compress, bench_lz4_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, 0, 0); + for (int level=1; level<=3; level+=1) + lzbench_test("density 0.12.5 beta level 0", level, lzbench_density_compress, lzbench_density_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); - if (cspeed <= 200) bench_test("lz5 r131", 0, bench_lz5_compress, bench_lz5_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 40) bench_test("lz5hc r131 -1", 0, bench_lz5hc_compress, bench_lz5_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 15) bench_test("lz5hc r131 -4", 0, bench_lz5hc_compress, bench_lz5_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, 0, 0); - if (cspeed <= 3) bench_test("lz5hc r131 -9", 0, bench_lz5hc_compress, bench_lz5_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, 0, 0); + lzbench_test("fastlz 0.1 level 1", 0, lzbench_fastlz_compress, lzbench_fastlz_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); + lzbench_test("fastlz 0.1 level 2", 0, lzbench_fastlz_compress, lzbench_fastlz_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 0, 0); - if (cspeed <= 265) bench_test("lzf level 0", 0, bench_lzf_compress, bench_lzf_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 270) bench_test("lzf level 1", 0, bench_lzf_compress, bench_lzf_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); + lzbench_test("lz4 r131", 0, lzbench_lz4_compress, lzbench_lz4_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + lzbench_test("lz4fast r131 acc=3", 0, lzbench_lz4fast_compress, lzbench_lz4_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 0, 0); + lzbench_test("lz4fast r131 acc=17", 0, lzbench_lz4fast_compress, lzbench_lz4_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 17, 0, 0); + lzbench_test("lz4hc r131 -1", 0, lzbench_lz4hc_compress, lzbench_lz4_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); + lzbench_test("lz4hc r131 -4", 0, lzbench_lz4hc_compress, lzbench_lz4_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, 0, 0); + lzbench_test("lz4hc r131 -9", 0, lzbench_lz4hc_compress, lzbench_lz4_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, 0, 0); - if (cspeed <= 7) bench_test("lzham 1.0 -m0d26 -0", 0, bench_lzham_compress, bench_lzham_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 26, 0); - if (cspeed <= 2) bench_test("lzham 1.0 -m0d26 -0", 1, bench_lzham_compress, bench_lzham_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 26, 0); + lzbench_test("lz5 r131b", 0, lzbench_lz5_compress, lzbench_lz5_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + lzbench_test("lz5hc r131b -1", 0, lzbench_lz5hc_compress, lzbench_lz5_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); + lzbench_test("lz5hc r131b -4", 0, lzbench_lz5hc_compress, lzbench_lz5_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, 0, 0); + lzbench_test("lz5hc r131b -9", 0, lzbench_lz5hc_compress, lzbench_lz5_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, 0, 0); - if (cspeed <= 239) bench_test("lzjb 2010", 0, bench_lzjb_compress, bench_lzjb_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + lzbench_test("lzf level 0", 0, lzbench_lzf_compress, lzbench_lzf_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + lzbench_test("lzf level 1", 0, lzbench_lzf_compress, lzbench_lzf_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); + lzbench_test("lzham 1.0 -m0d26 -0", 0, lzbench_lzham_compress, lzbench_lzham_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 26, 0); + lzbench_test("lzham 1.0 -m0d26 -0", 1, lzbench_lzham_compress, lzbench_lzham_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 26, 0); - if (cspeed <= 18) bench_test("lzma 9.38 level 0", 0, bench_lzma_compress, bench_lzma_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 17) bench_test("lzma 9.38 level 1", 0, bench_lzma_compress, bench_lzma_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 15) bench_test("lzma 9.38 level 2", 0, bench_lzma_compress, bench_lzma_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 0, 0); - if (cspeed <= 11) bench_test("lzma 9.38 level 3", 0, bench_lzma_compress, bench_lzma_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 0, 0); - if (cspeed <= 10) bench_test("lzma 9.38 level 4", 0, bench_lzma_compress, bench_lzma_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, 0, 0); - if (cspeed <= 2) bench_test("lzma 9.38 level 5", 0, bench_lzma_compress, bench_lzma_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 5, 0, 0); + lzbench_test("lzjb 2010", 0, lzbench_lzjb_compress, lzbench_lzjb_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 23) bench_test("lzmat 1.01", 0, bench_lzmat_compress, bench_lzmat_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + for (int level=0; level<=5; level+=1) + lzbench_test("lzma 9.38 level 0", level, lzbench_lzma_compress, lzbench_lzma_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); + lzbench_test("lzmat 1.01", 0, lzbench_lzmat_compress, lzbench_lzmat_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); work=(uint8_t*)calloc(1, LZO1B_999_MEM_COMPRESS); if (work) { lzo_init(); - if (cspeed <= 181) bench_test("lzo1b 2.09 -1", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, (size_t)work, 0); - if (cspeed <= 124) bench_test("lzo1b 2.09 -9", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, (size_t)work, 0); - if (cspeed <= 83) bench_test("lzo1b 2.09 -99", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 99, (size_t)work, 0); - if (cspeed <= 8) bench_test("lzo1b 2.09 -999", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 999, (size_t)work, 0); - if (cspeed <= 188) bench_test("lzo1c 2.09 -1", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1001, (size_t)work, 0); - if (cspeed <= 108) bench_test("lzo1c 2.09 -9", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1009, (size_t)work, 0); - if (cspeed <= 80) bench_test("lzo1c 2.09 -99", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1099, (size_t)work, 0); - if (cspeed <= 11) bench_test("lzo1c 2.09 -999", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1999, (size_t)work, 0); - if (cspeed <= 172) bench_test("lzo1f 2.09 -1", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2001, (size_t)work, 0); - if (cspeed <= 10) bench_test("lzo1f 2.09 -999", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2999, (size_t)work, 0); - if (cspeed <= 414) bench_test("lzo1x 2.09 -1", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3001, (size_t)work, 0); - if (cspeed <= 4) bench_test("lzo1x 2.09 -999", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3999, (size_t)work, 0); - if (cspeed <= 424) bench_test("lzo1y 2.09 -1", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4001, (size_t)work, 0); - if (cspeed <= 4) bench_test("lzo1y 2.09 -999", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4999, (size_t)work, 0); - if (cspeed <= 4) bench_test("lzo1z 2.09 -999", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 5999, (size_t)work, 0); - if (cspeed <= 11) bench_test("lzo2a 2.09 -999", 0, bench_lzo_compress, bench_lzo_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 6999, (size_t)work, 0); + lzbench_test("lzo1b 2.09 -1", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, (size_t)work, 0); + lzbench_test("lzo1b 2.09 -9", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, (size_t)work, 0); + lzbench_test("lzo1b 2.09 -99", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 99, (size_t)work, 0); + lzbench_test("lzo1b 2.09 -999", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 999, (size_t)work, 0); + lzbench_test("lzo1c 2.09 -1", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1001, (size_t)work, 0); + lzbench_test("lzo1c 2.09 -9", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1009, (size_t)work, 0); + lzbench_test("lzo1c 2.09 -99", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1099, (size_t)work, 0); + lzbench_test("lzo1c 2.09 -999", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1999, (size_t)work, 0); + lzbench_test("lzo1f 2.09 -1", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2001, (size_t)work, 0); + lzbench_test("lzo1f 2.09 -999", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2999, (size_t)work, 0); + lzbench_test("lzo1x 2.09 -1", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3001, (size_t)work, 0); + lzbench_test("lzo1x 2.09 -999", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3999, (size_t)work, 0); + lzbench_test("lzo1y 2.09 -1", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4001, (size_t)work, 0); + lzbench_test("lzo1y 2.09 -999", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4999, (size_t)work, 0); + lzbench_test("lzo1z 2.09 -999", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 5999, (size_t)work, 0); + lzbench_test("lzo2a 2.09 -999", 0, lzbench_lzo_compress, lzbench_lzo_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 6999, (size_t)work, 0); free(work); } work=(uint8_t*)calloc(1, lzrw2_req_mem()); if (work) { - if (cspeed <= 179) bench_test("lzrw1", 0, bench_lzrw_compress, bench_lzrw_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, (size_t)work, 0); - if (cspeed <= 180) bench_test("lzrw1a", 0, bench_lzrw_compress, bench_lzrw_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, (size_t)work, 0); - if (cspeed <= 195) bench_test("lzrw2", 0, bench_lzrw_compress, bench_lzrw_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, (size_t)work, 0); - if (cspeed <= 208) bench_test("lzrw3", 0, bench_lzrw_compress, bench_lzrw_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, (size_t)work, 0); - if (cspeed <= 91) bench_test("lzrw3a", 0, bench_lzrw_compress, bench_lzrw_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 5, (size_t)work, 0); + lzbench_test("lzrw1", 0, lzbench_lzrw_compress, lzbench_lzrw_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, (size_t)work, 0); + lzbench_test("lzrw1a", 0, lzbench_lzrw_compress, lzbench_lzrw_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, (size_t)work, 0); + lzbench_test("lzrw2", 0, lzbench_lzrw_compress, lzbench_lzrw_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, (size_t)work, 0); + lzbench_test("lzrw3", 0, lzbench_lzrw_compress, lzbench_lzrw_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, (size_t)work, 0); + lzbench_test("lzrw3a", 0, lzbench_lzrw_compress, lzbench_lzrw_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 5, (size_t)work, 0); free(work); } - if (cspeed <= 332) bench_test("pithy 2011-12-24 level 0", 0, bench_pithy_compress, bench_pithy_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 384) bench_test("pithy 2011-12-24 level 3", 0, bench_pithy_compress, bench_pithy_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 0, 0); - if (cspeed <= 302) bench_test("pithy 2011-12-24 level 6", 0, bench_pithy_compress, bench_pithy_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 6, 0, 0); - if (cspeed <= 280) bench_test("pithy 2011-12-24 level 9", 0, bench_pithy_compress, bench_pithy_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, 0, 0); - - state_size = MAX(qlz_get_setting_3(1),MAX(qlz_get_setting_1(1), qlz_get_setting_2(1))); - dstate_size = MAX(qlz_get_setting_3(2),MAX(qlz_get_setting_1(2), qlz_get_setting_2(2))); - state_size = MAX(state_size, dstate_size); - state = (qlz150_state_compress*) calloc(1, state_size); -// memset(state,0,state_size); - if (cspeed <= 359) bench_test("quicklz 1.5.0 -1", 0, bench_quicklz_compress, bench_quicklz_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, (size_t)state, 0); - if (cspeed <= 172) bench_test("quicklz 1.5.0 -2", 0, bench_quicklz_compress, bench_quicklz_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, (size_t)state, 0); - if (cspeed <= 42) bench_test("quicklz 1.5.0 -3", 0, bench_quicklz_compress, bench_quicklz_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, (size_t)state, 0); - if (cspeed <= 383) bench_test("quicklz 1.5.1 b7 -1", 0, bench_quicklz_compress, bench_quicklz_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, (size_t)state, 0); + for (int level=0; level<=9; level+=3) + lzbench_test("pithy 2011-12-24 level 0", level, lzbench_pithy_compress, lzbench_pithy_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); + + { + qlz150_state_compress* state; + int state_size, dstate_size; + state_size = MAX(qlz_get_setting_3(1),MAX(qlz_get_setting_1(1), qlz_get_setting_2(1))); + dstate_size = MAX(qlz_get_setting_3(2),MAX(qlz_get_setting_1(2), qlz_get_setting_2(2))); + state_size = MAX(state_size, dstate_size); + state = (qlz150_state_compress*) calloc(1, state_size); + // memset(state,0,state_size); + lzbench_test("quicklz 1.5.0 -1", 0, lzbench_quicklz_compress, lzbench_quicklz_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, (size_t)state, 0); + lzbench_test("quicklz 1.5.0 -2", 0, lzbench_quicklz_compress, lzbench_quicklz_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, (size_t)state, 0); + lzbench_test("quicklz 1.5.0 -3", 0, lzbench_quicklz_compress, lzbench_quicklz_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, (size_t)state, 0); + lzbench_test("quicklz 1.5.1 b7 -1", 0, lzbench_quicklz_compress, lzbench_quicklz_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, (size_t)state, 0); + } - if (cspeed <= 316) bench_test("shrinker", 0, bench_shrinker_compress, bench_shrinker_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - - if (cspeed <= 345) bench_test("snappy 1.1.3", 0, bench_snappy_compress, bench_snappy_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - - - - if (cspeed <= 269) bench_test("tornado 0.6 -1", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 221) bench_test("tornado 0.6 -2", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 0, 0); - if (cspeed <= 135) bench_test("tornado 0.6 -3", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 0, 0); - if (cspeed <= 102) bench_test("tornado 0.6 -4", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, 0, 0); - if (cspeed <= 47) bench_test("tornado 0.6 -5", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 5, 0, 0); - if (cspeed <= 33) bench_test("tornado 0.6 -6", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 6, 0, 0); - if (cspeed <= 15) bench_test("tornado 0.6 -7", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 7, 0, 0); - if (cspeed <= 5) bench_test("tornado 0.6 -10", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 10, 0, 0); - if (cspeed <= 6) bench_test("tornado 0.6 -13", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 13, 0, 0); - if (cspeed <= 2) bench_test("tornado 0.6 -16", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 16, 0, 0); - - if (cspeed <= 274) bench_test("tornado 0.6 h16k b1m", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 21, 0, 0); - if (cspeed <= 240) bench_test("tornado 0.6 h128k b2m", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 22, 0, 0); - if (cspeed <= 249) bench_test("tornado 0.6 h128k b8m", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 23, 0, 0); - if (cspeed <= 136) bench_test("tornado 0.6 h4m b8m", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 24, 0, 0); - if (cspeed <= 218) bench_test("tornado h128k b8m bitio", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 25, 0, 0); - if (cspeed <= 122) bench_test("tornado h4m b8m bitio", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 26, 0, 0); - if (cspeed <= 133) bench_test("tornado h4m b32m bitio", 0, bench_tornado_compress, bench_tornado_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 27, 0, 0); - - - if (cspeed <= 35) bench_test("ucl_nrv2b 1.03 -1", 0, bench_ucl_compress, bench_ucl_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 1, 0); - if (cspeed <= 14) bench_test("ucl_nrv2b 1.03 -6", 0, bench_ucl_compress, bench_ucl_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 6, 0); - if (cspeed <= 34) bench_test("ucl_nrv2d 1.03 -1", 0, bench_ucl_compress, bench_ucl_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 1, 0); - if (cspeed <= 13) bench_test("ucl_nrv2d 1.03 -6", 0, bench_ucl_compress, bench_ucl_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 6, 0); - if (cspeed <= 34) bench_test("ucl_nrv2e 1.03 -1", 0, bench_ucl_compress, bench_ucl_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 1, 0); - if (cspeed <= 13) bench_test("ucl_nrv2e 1.03 -6", 0, bench_ucl_compress, bench_ucl_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 6, 0); + lzbench_test("shrinker", 0, lzbench_shrinker_compress, lzbench_shrinker_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + + lzbench_test("snappy 1.1.3", 0, lzbench_snappy_compress, lzbench_snappy_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + + for (int level=1; level<=7; level+=1) + lzbench_test("tornado 0.6a -0", level, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); + lzbench_test("tornado 0.6a -10", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 10, 0, 0); + lzbench_test("tornado 0.6a -13", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 13, 0, 0); + lzbench_test("tornado 0.6a -16", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 16, 0, 0); + + lzbench_test("tornado 0.6a h16k b1m", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 21, 0, 0); + lzbench_test("tornado 0.6a h128k b2m", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 22, 0, 0); + lzbench_test("tornado 0.6a h128k b8m", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 23, 0, 0); + lzbench_test("tornado 0.6a h4m b8m", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 24, 0, 0); + lzbench_test("tornado h128k b8m bitio", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 25, 0, 0); + lzbench_test("tornado h4m b8m bitio", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 26, 0, 0); + lzbench_test("tornado h4m b32m bitio", 0, lzbench_tornado_compress, lzbench_tornado_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 27, 0, 0); + + lzbench_test("ucl_nrv2b 1.03 -1", 0, lzbench_ucl_compress, lzbench_ucl_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 1, 0); + lzbench_test("ucl_nrv2b 1.03 -6", 0, lzbench_ucl_compress, lzbench_ucl_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 6, 0); + lzbench_test("ucl_nrv2d 1.03 -1", 0, lzbench_ucl_compress, lzbench_ucl_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 1, 0); + lzbench_test("ucl_nrv2d 1.03 -6", 0, lzbench_ucl_compress, lzbench_ucl_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 6, 0); + lzbench_test("ucl_nrv2e 1.03 -1", 0, lzbench_ucl_compress, lzbench_ucl_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 1, 0); + lzbench_test("ucl_nrv2e 1.03 -6", 0, lzbench_ucl_compress, lzbench_ucl_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 6, 0); work=(uint8_t*)calloc(1, wfLZ_GetWorkMemSize()); if (work) { - if (cspeed <= 209) bench_test("wflz 2015-09-16", 0, bench_wflz_compress, bench_wflz_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, (size_t)work, 0); + lzbench_test("wflz 2015-09-16", 0, lzbench_wflz_compress, lzbench_wflz_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, (size_t)work, 0); free(work); } YappyFillTables(); - if (cspeed <= 99) bench_test("yappy 1", 0, bench_yappy_compress, bench_yappy_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 76) bench_test("yappy 10", 0, bench_yappy_compress, bench_yappy_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 10, 0, 0); - if (cspeed <= 53) bench_test("yappy 100", 0, bench_yappy_compress, bench_yappy_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 100, 0, 0); - - if (cspeed <= 66) bench_test("zlib 1.2.8 -1", 0, bench_zlib_compress, bench_zlib_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 21) bench_test("zlib 1.2.8 -6", 0, bench_zlib_compress, bench_zlib_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 6, 0, 0); - if (cspeed <= 6) bench_test("zlib 1.2.8 -9", 0, bench_zlib_compress, bench_zlib_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, 0, 0); - - if (cspeed <= 43) bench_test("zling 2015-09-15 level 0", 0, bench_zling_compress, bench_zling_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 40) bench_test("zling 2015-09-15 level 1", 0, bench_zling_compress, bench_zling_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 37) bench_test("zling 2015-09-15 level 2", 0, bench_zling_compress, bench_zling_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 2, 0, 0); - if (cspeed <= 33) bench_test("zling 2015-09-15 level 3", 0, bench_zling_compress, bench_zling_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 3, 0, 0); - if (cspeed <= 30) bench_test("zling 2015-09-15 level 4", 0, bench_zling_compress, bench_zling_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 4, 0, 0); - - if (cspeed <= 260) bench_test("zstd v0.3", 0, bench_zstd_compress, bench_zstd_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); - if (cspeed <= 260) bench_test("zstd_HC v0.3 -1", 0, bench_zstd_compress, bench_zstd_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); - if (cspeed <= 50) bench_test("zstd_HC v0.3 -5", 0, bench_zstd_compress, bench_zstd_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 5, 0, 0); - if (cspeed <= 20) bench_test("zstd_HC v0.3 -9", 0, bench_zstd_compress, bench_zstd_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, 0, 0); - if (cspeed <= 10) bench_test("zstd_HC v0.3 -13", 0, bench_zstd_compress, bench_zstd_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 13, 0, 0); - if (cspeed <= 7) bench_test("zstd_HC v0.3 -17", 0, bench_zstd_compress, bench_zstd_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 17, 0, 0); - if (cspeed <= 4) bench_test("zstd_HC v0.3 -21", 0, bench_zstd_compress, bench_zstd_decompress, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 21, 0, 0); + lzbench_test("yappy 1", 0, lzbench_yappy_compress, lzbench_yappy_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); + lzbench_test("yappy 10", 0, lzbench_yappy_compress, lzbench_yappy_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 10, 0, 0); + lzbench_test("yappy 100", 0, lzbench_yappy_compress, lzbench_yappy_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 100, 0, 0); + + lzbench_test("zlib 1.2.8 -1", 0, lzbench_zlib_compress, lzbench_zlib_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 1, 0, 0); + lzbench_test("zlib 1.2.8 -6", 0, lzbench_zlib_compress, lzbench_zlib_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 6, 0, 0); + lzbench_test("zlib 1.2.8 -9", 0, lzbench_zlib_compress, lzbench_zlib_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 9, 0, 0); + + for (int level=0; level<=4; level+=1) + lzbench_test("zling 2015-09-15 level 0", level, lzbench_zling_compress, lzbench_zling_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); + + lzbench_test("zstd v0.3", 0, lzbench_zstd_compress, lzbench_zstd_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, 0, 0, 0); + for (int level=1; level<=9; level+=4) + lzbench_test("zstd_HC v0.3 -0", level, lzbench_zstdhc_compress, lzbench_zstdhc_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); + for (int level=13; level<=21; level+=4) + lzbench_test("zstd_HC v0.3 -00", level, lzbench_zstdhc_compress, lzbench_zstdhc_decompress, cspeed, chunk_size, iters, inbuf, insize, compbuf, comprsize, decomp, ticksPerSecond, level, 0, 0); done: diff --git a/crush/crush.cpp b/crush/crush.cpp index e8af4f78..1b2b4a89 100644 --- a/crush/crush.cpp +++ b/crush/crush.cpp @@ -3,7 +3,7 @@ // #ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS +#define _CRT_SECECURE_NO_WARNINGS #define _CRT_DISABLE_PERFCRIT_LOCKS #else #define _FILE_OFFSET_BITS 64 @@ -306,54 +306,54 @@ uint32_t compress(int level, uint8_t* buf, int size, uint8_t* outbuf) uint32_t decompress(uint8_t* inbuf, uint8_t* outbuf, int outsize) { - if ((outsize<1)) - { - fprintf(stderr, "File corrupted: size=%d\n", outsize); - exit(1); - } - - init_bits(inbuf, NULL); - - int p=0; - while (p(W_BITS-NUM_SLOTS) - ?get_bits(log)+(1<(W_BITS-NUM_SLOTS) + ?get_bits(log)+(1<> shift) == (hashTableSize - 1l)); size_t skip = 32ul;