mirror of https://github.com/google/snappy.git
Remove benchmarking support for fastlz.
This commit is contained in:
parent
18488d6212
commit
82deffcde7
|
@ -49,7 +49,6 @@ ENDIF (NOT HAVE_STDDEF_H)
|
||||||
|
|
||||||
CHECK_LIBRARY_EXISTS(z zlibVersion "" HAVE_LIBZ)
|
CHECK_LIBRARY_EXISTS(z zlibVersion "" HAVE_LIBZ)
|
||||||
CHECK_LIBRARY_EXISTS(lzo2 lzo1x_1_15_compress "" HAVE_LIBLZO2)
|
CHECK_LIBRARY_EXISTS(lzo2 lzo1x_1_15_compress "" HAVE_LIBLZO2)
|
||||||
CHECK_LIBRARY_EXISTS(fastlz fastlz_compress "" HAVE_LIBFASTLZ)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("int main(void) { return __builtin_expect(0, 1); }"
|
CHECK_CXX_SOURCE_COMPILES("int main(void) { return __builtin_expect(0, 1); }"
|
||||||
HAVE_BUILTIN_EXPECT)
|
HAVE_BUILTIN_EXPECT)
|
||||||
|
@ -140,10 +139,6 @@ IF (HAVE_LIBLZF)
|
||||||
LIST(APPEND COMPRESSION_LIBS lzf)
|
LIST(APPEND COMPRESSION_LIBS lzf)
|
||||||
ENDIF (HAVE_LIBLZF)
|
ENDIF (HAVE_LIBLZF)
|
||||||
|
|
||||||
IF (HAVE_LIBFASTLZ)
|
|
||||||
LIST(APPEND COMPRESSION_LIBS fastlz)
|
|
||||||
ENDIF (HAVE_LIBFASTLZ)
|
|
||||||
|
|
||||||
IF (HAVE_LIBQUICKLZ)
|
IF (HAVE_LIBQUICKLZ)
|
||||||
LIST(APPEND COMPRESSION_LIBS quicklz)
|
LIST(APPEND COMPRESSION_LIBS quicklz)
|
||||||
ENDIF (HAVE_LIBQUICKLZ)
|
ENDIF (HAVE_LIBQUICKLZ)
|
||||||
|
|
|
@ -34,7 +34,7 @@ Snappy is intended to be fast. On a single core of a Core i7 processor
|
||||||
in 64-bit mode, it compresses at about 250 MB/sec or more and decompresses at
|
in 64-bit mode, it compresses at about 250 MB/sec or more and decompresses at
|
||||||
about 500 MB/sec or more. (These numbers are for the slowest inputs in our
|
about 500 MB/sec or more. (These numbers are for the slowest inputs in our
|
||||||
benchmark suite; others are much faster.) In our tests, Snappy usually
|
benchmark suite; others are much faster.) In our tests, Snappy usually
|
||||||
is faster than algorithms in the same class (e.g. LZO, LZF, FastLZ, QuickLZ,
|
is faster than algorithms in the same class (e.g. LZO, LZF, QuickLZ,
|
||||||
etc.) while achieving comparable compression ratios.
|
etc.) while achieving comparable compression ratios.
|
||||||
|
|
||||||
Typical compression ratios (based on the benchmark suite) are about 1.5-1.7x
|
Typical compression ratios (based on the benchmark suite) are about 1.5-1.7x
|
||||||
|
@ -52,7 +52,7 @@ In particular:
|
||||||
- Snappy uses 64-bit operations in several places to process more data at
|
- Snappy uses 64-bit operations in several places to process more data at
|
||||||
once than would otherwise be possible.
|
once than would otherwise be possible.
|
||||||
- Snappy assumes unaligned 32- and 64-bit loads and stores are cheap.
|
- Snappy assumes unaligned 32- and 64-bit loads and stores are cheap.
|
||||||
On some platforms, these must be emulated with single-byte loads
|
On some platforms, these must be emulated with single-byte loads
|
||||||
and stores, which is much slower.
|
and stores, which is much slower.
|
||||||
- Snappy assumes little-endian throughout, and needs to byte-swap data in
|
- Snappy assumes little-endian throughout, and needs to byte-swap data in
|
||||||
several places if running on a big-endian platform.
|
several places if running on a big-endian platform.
|
||||||
|
@ -126,7 +126,7 @@ before the unit tests, but you can disable them using the flag
|
||||||
need to edit the source).
|
need to edit the source).
|
||||||
|
|
||||||
Finally, snappy can benchmark Snappy against a few other compression libraries
|
Finally, snappy can benchmark Snappy against a few other compression libraries
|
||||||
(zlib, LZO, LZF, FastLZ and QuickLZ), if they were detected at configure time.
|
(zlib, LZO, LZF, and QuickLZ), if they were detected at configure time.
|
||||||
To benchmark using a given file, give the compression algorithm you want to test
|
To benchmark using a given file, give the compression algorithm you want to test
|
||||||
Snappy against (e.g. --zlib) and then a list of one or more file names on the
|
Snappy against (e.g. --zlib) and then a list of one or more file names on the
|
||||||
command line. The testdata/ directory contains the files used by the
|
command line. The testdata/ directory contains the files used by the
|
||||||
|
|
|
@ -22,9 +22,6 @@
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H}
|
#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H}
|
||||||
|
|
||||||
/* Define to 1 if you have the `fastlz' library (-lfastlz). */
|
|
||||||
#cmakedefine HAVE_LIBFASTLZ ${HAVE_LIBFASTLZ}
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `lzo2' library (-llzo2). */
|
/* Define to 1 if you have the `lzo2' library (-llzo2). */
|
||||||
#cmakedefine HAVE_LIBLZO2 ${HAVE_LIBLZO2}
|
#cmakedefine HAVE_LIBLZO2 ${HAVE_LIBLZO2}
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ fi
|
||||||
# See if we have __builtin_expect.
|
# See if we have __builtin_expect.
|
||||||
# TODO: Use AC_CACHE.
|
# TODO: Use AC_CACHE.
|
||||||
AC_MSG_CHECKING([if the compiler supports __builtin_expect])
|
AC_MSG_CHECKING([if the compiler supports __builtin_expect])
|
||||||
|
|
||||||
AC_TRY_COMPILE(, [
|
AC_TRY_COMPILE(, [
|
||||||
return __builtin_expect(1, 1) ? 1 : 0
|
return __builtin_expect(1, 1) ? 1 : 0
|
||||||
], [
|
], [
|
||||||
|
@ -97,7 +97,6 @@ AC_DEFUN([CHECK_EXT_COMPRESSION_LIB], [
|
||||||
])
|
])
|
||||||
CHECK_EXT_COMPRESSION_LIB([z], [zlibVersion])
|
CHECK_EXT_COMPRESSION_LIB([z], [zlibVersion])
|
||||||
CHECK_EXT_COMPRESSION_LIB([lzo2], [lzo1x_1_15_compress])
|
CHECK_EXT_COMPRESSION_LIB([lzo2], [lzo1x_1_15_compress])
|
||||||
CHECK_EXT_COMPRESSION_LIB([fastlz], [fastlz_compress])
|
|
||||||
AC_SUBST([UNITTEST_LIBS])
|
AC_SUBST([UNITTEST_LIBS])
|
||||||
|
|
||||||
# These are used by snappy-stubs-public.h.in.
|
# These are used by snappy-stubs-public.h.in.
|
||||||
|
|
|
@ -116,10 +116,6 @@ extern "C" {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_LIBFASTLZ
|
|
||||||
#include "fastlz.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_LIBQUICKLZ
|
#ifdef HAVE_LIBQUICKLZ
|
||||||
#include "quicklz.h"
|
#include "quicklz.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -51,8 +51,6 @@ DEFINE_bool(zlib, false,
|
||||||
"Run zlib compression (http://www.zlib.net)");
|
"Run zlib compression (http://www.zlib.net)");
|
||||||
DEFINE_bool(lzo, false,
|
DEFINE_bool(lzo, false,
|
||||||
"Run LZO compression (http://www.oberhumer.com/opensource/lzo/)");
|
"Run LZO compression (http://www.oberhumer.com/opensource/lzo/)");
|
||||||
DEFINE_bool(fastlz, false,
|
|
||||||
"Run FastLZ compression (http://www.fastlz.org/");
|
|
||||||
DEFINE_bool(snappy, true, "Run snappy compression");
|
DEFINE_bool(snappy, true, "Run snappy compression");
|
||||||
|
|
||||||
DEFINE_bool(write_compressed, false,
|
DEFINE_bool(write_compressed, false,
|
||||||
|
@ -118,11 +116,11 @@ typedef string DataEndingAtUnreadablePage;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum CompressorType {
|
enum CompressorType {
|
||||||
ZLIB, LZO, FASTLZ, SNAPPY
|
ZLIB, LZO, SNAPPY
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* names[] = {
|
const char* names[] = {
|
||||||
"ZLIB", "LZO", "FASTLZ", "SNAPPY"
|
"ZLIB", "LZO", "SNAPPY"
|
||||||
};
|
};
|
||||||
|
|
||||||
static size_t MinimumRequiredOutputSpace(size_t input_size,
|
static size_t MinimumRequiredOutputSpace(size_t input_size,
|
||||||
|
@ -138,11 +136,6 @@ static size_t MinimumRequiredOutputSpace(size_t input_size,
|
||||||
return input_size + input_size/64 + 16 + 3;
|
return input_size + input_size/64 + 16 + 3;
|
||||||
#endif // LZO_VERSION
|
#endif // LZO_VERSION
|
||||||
|
|
||||||
#ifdef FASTLZ_VERSION
|
|
||||||
case FASTLZ:
|
|
||||||
return max(static_cast<int>(ceil(input_size * 1.05)), 66);
|
|
||||||
#endif // FASTLZ_VERSION
|
|
||||||
|
|
||||||
case SNAPPY:
|
case SNAPPY:
|
||||||
return snappy::MaxCompressedLength(input_size);
|
return snappy::MaxCompressedLength(input_size);
|
||||||
|
|
||||||
|
@ -202,22 +195,6 @@ static bool Compress(const char* input, size_t input_size, CompressorType comp,
|
||||||
}
|
}
|
||||||
#endif // LZO_VERSION
|
#endif // LZO_VERSION
|
||||||
|
|
||||||
#ifdef FASTLZ_VERSION
|
|
||||||
case FASTLZ: {
|
|
||||||
// Use level 1 compression since we mostly care about speed.
|
|
||||||
int destlen = fastlz_compress_level(
|
|
||||||
1,
|
|
||||||
input,
|
|
||||||
input_size,
|
|
||||||
string_as_array(compressed));
|
|
||||||
if (!compressed_is_preallocated) {
|
|
||||||
compressed->resize(destlen);
|
|
||||||
}
|
|
||||||
CHECK_NE(destlen, 0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif // FASTLZ_VERSION
|
|
||||||
|
|
||||||
case SNAPPY: {
|
case SNAPPY: {
|
||||||
size_t destlen;
|
size_t destlen;
|
||||||
snappy::RawCompress(input, input_size,
|
snappy::RawCompress(input, input_size,
|
||||||
|
@ -272,18 +249,6 @@ static bool Uncompress(const string& compressed, CompressorType comp,
|
||||||
}
|
}
|
||||||
#endif // LZO_VERSION
|
#endif // LZO_VERSION
|
||||||
|
|
||||||
#ifdef FASTLZ_VERSION
|
|
||||||
case FASTLZ: {
|
|
||||||
output->resize(size);
|
|
||||||
int destlen = fastlz_decompress(compressed.data(),
|
|
||||||
compressed.length(),
|
|
||||||
string_as_array(output),
|
|
||||||
size);
|
|
||||||
CHECK_EQ(destlen, size);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif // FASTLZ_VERSION
|
|
||||||
|
|
||||||
case SNAPPY: {
|
case SNAPPY: {
|
||||||
snappy::RawUncompress(compressed.data(), compressed.size(),
|
snappy::RawUncompress(compressed.data(), compressed.size(),
|
||||||
string_as_array(output));
|
string_as_array(output));
|
||||||
|
@ -1231,7 +1196,6 @@ static void MeasureFile(const char* fname) {
|
||||||
int repeats = (FLAGS_bytes + len) / (len + 1);
|
int repeats = (FLAGS_bytes + len) / (len + 1);
|
||||||
if (FLAGS_zlib) Measure(input, len, ZLIB, repeats, 1024<<10);
|
if (FLAGS_zlib) Measure(input, len, ZLIB, repeats, 1024<<10);
|
||||||
if (FLAGS_lzo) Measure(input, len, LZO, repeats, 1024<<10);
|
if (FLAGS_lzo) Measure(input, len, LZO, repeats, 1024<<10);
|
||||||
if (FLAGS_fastlz) Measure(input, len, FASTLZ, repeats, 1024<<10);
|
|
||||||
if (FLAGS_snappy) Measure(input, len, SNAPPY, repeats, 4096<<10);
|
if (FLAGS_snappy) Measure(input, len, SNAPPY, repeats, 4096<<10);
|
||||||
|
|
||||||
// For block-size based measurements
|
// For block-size based measurements
|
||||||
|
|
Loading…
Reference in New Issue