Commit Graph

61 Commits

Author SHA1 Message Date
Reto Koradi
cc91777c98 Make benchmark compatible with dictionary compression
Support the -D command line option for running benchmarks. The
benchmark code was slightly restructured to factor out the calls
that need to be different for each benchmark scenario. Since there
are now 4 scenarios (all combinations of fast/HC and with/without
dictionary), the logic was getting somewhat convoluted otherwise.

This was done by extending the compressionParameters struct that
previously contained just a single function pointer. It now
contains 4 function pointers for init/reset/compress/cleanup,
with the related state. The functions get a pointer to the
structure as their first argument (inspired by C++), so that they
can access the state values in the struct.
2019-11-05 23:38:00 -08:00
Yann Collet
4f6de46f60 fix several minor static analyzer warnings 2019-04-18 12:05:50 -07:00
Yann Collet
2e4847c2d5 fixed #560
it was a fairly complex scenario,
involving source files > 64K
and some extraordinary conditions related to specific layout of ranges of zeroes.
and only on level 9.
2018-09-04 18:21:40 -07:00
Jennifer Liu
e778db373b Fixed bugs about incorrect acceleration calculation and benchmarking negative compresion level 2018-06-27 13:36:38 -07:00
Jennifer Liu
9ee5183d9b Fixed code based on comments from pull request 2018-06-26 17:31:15 -07:00
Jennifer Liu
9f8fd09852 delete commented out code in bench.c 2018-06-26 10:49:39 -07:00
Jennifer Liu
536b79afd9 Added --fast command to cli 2018-06-25 17:46:39 -07:00
Yann Collet
1faa7e2698 bench: introduced hidden command -S
to benchmark multiple files with separate results
2018-03-19 17:19:25 -07:00
Yann Collet
179670f32f use TIMELOOP_NANOSEC,
as suggested by @terrelln
2018-02-20 15:26:59 -08:00
Yann Collet
34c1634d4b fixed minor conversion warning 2018-02-20 14:13:13 -08:00
Yann Collet
ae3dededed ensure bench speed measurement is more accurate for small inputs
Previous method would produce too many time() invocations,
becoming a significant fraction of workload measured.

The new strategy is to use time() only once per batch,
and dynamically resize batch size so that each round lasts approximately 1 second.

This only matters for small inputs.
Measurement for large files (such as silesia.tar) are much less impacted
(though decoding speed is so fast that even medium-size files will notice an improvement).
2018-02-20 13:09:13 -08:00
Yann Collet
1a233c5f0f update bench.c to use less time invocations
translating into more accurate speed measurements for small sources
2018-02-20 11:37:19 -08:00
Nick Terrell
74d8688bc8 [bench] Use higher resolution timer on POSIX
The timer used was only accurate up to 0.01 seconds. This timer is accurate up to 1 ns.
It is a monotonic timer that measures the real time difference, not on CPU time.

Copied the benchmark code from 6ab4d5e904
2017-10-17 13:55:35 -07:00
Yann Collet
a30cba08f4 fixed a bunch of -Wcomma warnings
reported by @rvandermeulen (#398)
2017-09-10 14:32:38 -07:00
Yann Collet
00418f7611 bench : made decompression speed evaluation same time as compression
minor : slightly modified an example do avoid disabling a gcc warning through #pragma
2017-09-07 12:12:36 -07:00
Przemyslaw Skibinski
cb1671955a bench.c: respect LZ4_MAX_INPUT_SIZE limit 2017-03-10 20:49:25 +01:00
Przemyslaw Skibinski
40ad1e85d4 upgraded util.h 2017-02-15 17:16:15 +01:00
Chocobo1
db6f733ecc Use logical or instead of bitwise or 2017-01-13 00:43:25 +08:00
Yann Collet
b41f9bb132 Merge pull request #292 from inikep/dev
improved POSIX
2016-12-22 11:58:29 +01:00
Yann Collet
52cac9a973 updated a few macros names 2016-12-22 11:41:05 +01:00
Przemyslaw Skibinski
f084b65383 test Large File support for Mac OS-X in 32-bits mode 2016-12-21 17:13:38 +01:00
Przemyslaw Skibinski
2cfef13952 executables use platform.h 2016-12-20 18:05:43 +01:00
Przemyslaw Skibinski
7b6a9d8638 Merge remote-tracking branch 'refs/remotes/lz4/dev' into dev 2016-11-16 09:01:45 +01:00
Yann Collet
d2be69b144 fixed minor coverity warnings 2016-11-15 14:46:57 -08:00
Przemyslaw Skibinski
2278d1f02f custom block size 2016-11-10 16:31:10 +01:00
Yann Collet
f34808e4ae fixed some static analyzer warning 2016-11-09 17:39:53 -08:00
Yann Collet
1b95d60c66 fixed synthetic benchmark mode
slightly optimized test mode
2016-11-09 15:04:55 -08:00
Przemyslaw Skibinski
fbede33fd7 fixed Travis tests 2016-11-04 16:56:01 +01:00
Przemyslaw Skibinski
e8a6067e8a updated lz4cli.c 2016-11-04 14:46:45 +01:00
Przemyslaw Skibinski
8b8c726a5c bench.c based on zstd 2016-11-04 14:26:12 +01:00
Przemyslaw Skibinski
84cedb4632 updated links to LZ4 repository 2016-11-03 15:12:57 +01:00
Yann Collet
64f556e610 lz4cli version number from lz4.h 2016-09-02 19:32:06 -07:00
inikep
b3ae49c7bf added <string.h> for strlen() 2016-09-02 23:02:30 +02:00
inikep
2cf32ef0f1 -b# and -e# options from zstd 2016-09-02 22:59:18 +02:00
inikep
c1864f69e8 fix mingw64 compilation warnings 2016-09-02 21:50:57 +02:00
Yann Collet
b130fd5923 minor refactoring changes 2016-08-10 08:26:49 +02:00
Yann Collet
6b1600f41e changed : default benchmark LZ4_decompress_safe() 2016-06-29 17:48:28 +02:00
Yann Collet
a5508b1ad2 fixed display result issue when benchmarking multiple files 2016-06-29 14:56:50 +02:00
Yann Collet
e27e7316dd minor code refactoring 2016-06-29 14:54:07 +02:00
Yann Collet
2d7df8b306 Reduced bench dependency to standard C <time.h>
Faster tests
More accurate results on systems with high resolution clocks
2016-06-29 14:35:19 +02:00
Yann Collet
8938e10742 minor compression speed improvement 2016-06-29 14:07:54 +02:00
Yann Collet
e05088d0eb Updated lz4hc API 2015-05-03 20:57:21 +01:00
Yann Collet
1b17bf2ab8 New lz4 API, using LZ4_compress_fast() 2015-05-03 17:57:46 +01:00
Yann Collet
f11afafe23 Removed LZ4_compress() (obsolete) from lz4 2015-04-21 18:31:35 +01:00
Yann Collet
8a610004f6 Fixed a few coverity warnings 2015-04-12 09:42:58 +01:00
Yann Collet
62ed153195 Fixed : a few minor coverity warnings 2015-04-12 08:21:35 +01:00
Yann Collet
f344fbd3ca Fixed a few warnings from -fsanitize=undefined 2015-04-09 22:59:07 +01:00
Yann Collet
7f436a1215 lz4 cli supports frame content size 2015-03-23 02:20:42 +01:00
Yann Collet
45b0642bf5 scan-build tests 2015-03-15 01:42:27 +01:00
Yann Collet
45a357fd17 Improved sparse file support 2015-03-13 02:24:08 +01:00