Skip to content

Commit b48d2ac

Browse files
committed
The first release for GitHub
1 parent c5c6a4a commit b48d2ac

File tree

528 files changed

+169444
-79
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

528 files changed

+169444
-79
lines changed

.gitattributes

+13-15
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
1-
# Auto detect text files and perform LF normalization
2-
* text=auto
1+
# Set the default behavior
2+
* text eol=lf
33

4-
# Custom for Visual Studio
5-
*.cs diff=csharp
4+
# Explicitly declare source files
5+
*.c text eol=lf
6+
*.h text eol=lf
7+
8+
# Denote files that should not be modified.
9+
*.odt binary
10+
*.png binary
11+
# Visual Studio
12+
*.sln binary
13+
*.suo binary
14+
*.vcxproj* binary
615

7-
# Standard to msysgit
8-
*.doc diff=astextplain
9-
*.DOC diff=astextplain
10-
*.docx diff=astextplain
11-
*.DOCX diff=astextplain
12-
*.dot diff=astextplain
13-
*.DOT diff=astextplain
14-
*.pdf diff=astextplain
15-
*.PDF diff=astextplain
16-
*.rtf diff=astextplain
17-
*.RTF diff=astextplain

.gitignore

+15-64
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,26 @@
1-
# Compiled Object files
2-
*.slo
3-
*.lo
1+
# Directories
2+
_codelite/
3+
_visual/
4+
5+
# Object files
46
*.o
5-
*.obj
7+
*.ko
68

7-
# Precompiled Headers
8-
*.gch
9-
*.pch
9+
# Libraries
10+
*.lib
11+
*.a
1012

11-
# Compiled Dynamic libraries
13+
# Shared objects (inc. Windows DLLs)
14+
*.dll
1215
*.so
16+
*.so.*
1317
*.dylib
14-
*.dll
15-
16-
# Fortran module files
17-
*.mod
18-
19-
# Compiled Static libraries
20-
*.lai
21-
*.la
22-
*.a
23-
*.lib
2418

2519
# Executables
2620
*.exe
2721
*.out
2822
*.app
2923

30-
# =========================
31-
# Operating System Files
32-
# =========================
33-
34-
# OSX
35-
# =========================
36-
37-
.DS_Store
38-
.AppleDouble
39-
.LSOverride
40-
41-
# Thumbnails
42-
._*
43-
44-
# Files that might appear on external disk
45-
.Spotlight-V100
46-
.Trashes
47-
48-
# Directories potentially created on remote AFP share
49-
.AppleDB
50-
.AppleDesktop
51-
Network Trash Folder
52-
Temporary Items
53-
.apdisk
54-
55-
# Windows
56-
# =========================
57-
58-
# Windows image file caches
59-
Thumbs.db
60-
ehthumbs.db
61-
62-
# Folder config file
63-
Desktop.ini
64-
65-
# Recycle Bin used on file shares
66-
$RECYCLE.BIN/
67-
68-
# Windows Installer files
69-
*.cab
70-
*.msi
71-
*.msm
72-
*.msp
73-
74-
# Windows shortcuts
75-
*.lnk
24+
# Visual solution files
25+
*.suo
26+
*.user

Makefile

+118
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
#BUILD_SYSTEM = linux
2+
BUILD_ARCH = 64-bit
3+
4+
ifeq ($(BUILD_SYSTEM),linux)
5+
DEFINES += -DFREEARC_UNIX
6+
LDFLAGS = -lrt
7+
GCC = gcc
8+
GPP = g++
9+
else
10+
# DEFINES = -march=core2 -march=nocona -march=k8 -march=native
11+
DEFINES += -DFREEARC_WIN
12+
LDFLAGS = -lshell32 -lole32 -loleaut32
13+
GCC = gcc.exe
14+
GPP = g++.exe
15+
endif
16+
17+
18+
ifeq ($(BUILD_ARCH),64-bit)
19+
DEFINES += -D__x86_64__
20+
LDFLAGS += -static -L C:\Aplikacje\win-builds64\lib
21+
else
22+
LDFLAGS += -static -L C:\Aplikacje\win-builds32\lib
23+
endif
24+
25+
26+
#DEFINES += -DBENCH_REMOVE_XXX
27+
DEFINES += -I. -DFREEARC_INTEL_BYTE_ORDER -D_UNICODE -DUNICODE
28+
CODE_FLAGS = -Wno-unknown-pragmas -Wno-sign-compare -Wno-conversion
29+
OPT_FLAGS = -fomit-frame-pointer -fstrict-aliasing -fforce-addr -ffast-math
30+
31+
#BUILD_TYPE = debug
32+
33+
ifeq ($(BUILD_TYPE),debug)
34+
OPT_FLAGS += -g
35+
else
36+
OPT_FLAGS += -O3 -DNDEBUG
37+
endif
38+
39+
CFLAGS = $(CODE_FLAGS) $(OPT_FLAGS) $(DEFINES)
40+
41+
42+
all: lzbench
43+
44+
45+
ZLING_FILES = libzling/libzling.o libzling/libzling_huffman.o libzling/libzling_lz.o libzling/libzling_utils.o
46+
47+
LZO_FILES = lzo/lzo1.o lzo/lzo1a.o lzo/lzo1a_99.o lzo/lzo1b_1.o lzo/lzo1b_2.o lzo/lzo1b_3.o lzo/lzo1b_4.o lzo/lzo1b_5.o
48+
LZO_FILES += lzo/lzo1b_6.o lzo/lzo1b_7.o lzo/lzo1b_8.o lzo/lzo1b_9.o lzo/lzo1b_99.o lzo/lzo1b_9x.o lzo/lzo1b_cc.o
49+
LZO_FILES += lzo/lzo1b_d1.o lzo/lzo1b_d2.o lzo/lzo1b_rr.o lzo/lzo1b_xx.o lzo/lzo1c_1.o lzo/lzo1c_2.o lzo/lzo1c_3.o
50+
LZO_FILES += lzo/lzo1c_4.o lzo/lzo1c_5.o lzo/lzo1c_6.o lzo/lzo1c_7.o lzo/lzo1c_8.o lzo/lzo1c_9.o lzo/lzo1c_99.o
51+
LZO_FILES += lzo/lzo1c_9x.o lzo/lzo1c_cc.o lzo/lzo1c_d1.o lzo/lzo1c_d2.o lzo/lzo1c_rr.o lzo/lzo1c_xx.o lzo/lzo1f_1.o
52+
LZO_FILES += lzo/lzo1f_9x.o lzo/lzo1f_d1.o lzo/lzo1f_d2.o lzo/lzo1x_1.o lzo/lzo1x_1k.o lzo/lzo1x_1l.o lzo/lzo1x_1o.o
53+
LZO_FILES += lzo/lzo1x_9x.o lzo/lzo1x_d1.o lzo/lzo1x_d2.o lzo/lzo1x_d3.o lzo/lzo1x_o.o lzo/lzo1y_1.o lzo/lzo1y_9x.o
54+
LZO_FILES += lzo/lzo1y_d1.o lzo/lzo1y_d2.o lzo/lzo1y_d3.o lzo/lzo1y_o.o lzo/lzo1z_9x.o lzo/lzo1z_d1.o lzo/lzo1z_d2.o
55+
LZO_FILES += lzo/lzo1z_d3.o lzo/lzo1_99.o lzo/lzo2a_9x.o lzo/lzo2a_d1.o lzo/lzo2a_d2.o lzo/lzo_crc.o lzo/lzo_init.o
56+
LZO_FILES += lzo/lzo_ptr.o lzo/lzo_str.o lzo/lzo_util.o
57+
58+
UCL_FILES = ucl/alloc.o ucl/n2b_99.o ucl/n2b_d.o ucl/n2b_ds.o ucl/n2b_to.o ucl/n2d_99.o ucl/n2d_d.o ucl/n2d_ds.o
59+
UCL_FILES += ucl/n2d_to.o ucl/n2e_99.o ucl/n2e_d.o ucl/n2e_ds.o ucl/n2e_to.o ucl/ucl_crc.o ucl/ucl_init.o
60+
UCL_FILES += ucl/ucl_ptr.o ucl/ucl_str.o ucl/ucl_util.o
61+
62+
LZHAM_FILES = lzham/lzham_assert.o lzham/lzham_checksum.o lzham/lzham_huffman_codes.o lzham/lzham_lzbase.cpp
63+
LZHAM_FILES += lzham/lzham_lzcomp.o lzham/lzham_lzcomp_internal.o lzham/lzham_lzdecomp.o lzham/lzham_lzdecompbase.o
64+
LZHAM_FILES += lzham/lzham_match_accel.o lzham/lzham_mem.o lzham/lzham_platform.o lzham/lzham_lzcomp_state.o
65+
LZHAM_FILES += lzham/lzham_prefix_coding.o lzham/lzham_symbol_codec.o lzham/lzham_timer.o lzham/lzham_vector.o lzham/lzham_lib.o
66+
67+
ZLIB_FILES = zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/gzclose.o zlib/gzlib.o zlib/gzread.o
68+
ZLIB_FILES += zlib/gzwrite.o zlib/infback.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o
69+
ZLIB_FILES += zlib/uncompr.o zlib/zutil.o
70+
71+
LZMAT_FILES = lzmat/lzmat_dec.o lzmat/lzmat_enc.o
72+
73+
LZRW_FILES = lzrw/lzrw1-a.o lzrw/lzrw1.o lzrw/lzrw2.o lzrw/lzrw3.o lzrw/lzrw3-a.o
74+
75+
LZMA_FILES = lzma/LzFind.o lzma/LzmaDec.o lzma/LzmaEnc.o
76+
77+
LZ4_FILES = lz5/lz5.o lz5/lz5hc.o lz4/lz4.o lz4/lz4hc.o
78+
79+
LZF_FILES = lzf/lzf_c_ultra.o lzf/lzf_c_very.o lzf/lzf_d.o
80+
81+
QUICKLZ_FILES = quicklz/quicklz151b7.o quicklz/quicklz1.o quicklz/quicklz2.o quicklz/quicklz3.o
82+
83+
DENSITY_FILES = density/block_decode.o density/block_encode.o density/block_footer.o density/block_header.o density/block_mode_marker.o
84+
DENSITY_FILES += density/buffer.o density/globals.o density/kernel_chameleon_decode.o density/kernel_chameleon_dictionary.o
85+
DENSITY_FILES += density/kernel_chameleon_encode.o density/kernel_cheetah_decode.o density/kernel_cheetah_dictionary.o
86+
DENSITY_FILES += density/kernel_cheetah_encode.o density/kernel_lion_decode.o density/kernel_lion_dictionary.o
87+
DENSITY_FILES += density/kernel_lion_encode.o density/kernel_lion_form_model.o density/main_decode.o density/main_encode.o
88+
DENSITY_FILES += density/main_footer.o density/main_header.o density/memory_location.o density/memory_teleport.o density/stream.o
89+
DENSITY_FILES += density/spookyhash/spookyhash.o density/spookyhash/context.o
90+
91+
SNAPPY_FILES = snappy/snappy-sinksource.o snappy/snappy-stubs-internal.o snappy/snappy.o
92+
93+
CSC_FILES = libcsc/csc_analyzer.o libcsc/csc_coder.o libcsc/csc_dec.o libcsc/csc_enc.o libcsc/csc_encoder_main.o
94+
CSC_FILES += libcsc/csc_filters.o libcsc/csc_lz.o libcsc/csc_memio.o libcsc/csc_mf.o libcsc/csc_model.o libcsc/csc_profiler.o
95+
96+
BROTLI_FILES = brotli/dec/bit_reader.o brotli/dec/decode.o brotli/dec/dictionary.o brotli/dec/huffman.o brotli/dec/state.o brotli/dec/streams.o
97+
BROTLI_FILES += brotli/enc/backward_references.o brotli/enc/block_splitter.o brotli/enc/brotli_bit_stream.o brotli/enc/encode.o
98+
BROTLI_FILES += brotli/enc/encode_parallel.o brotli/enc/entropy_encode.o brotli/enc/histogram.o brotli/enc/literal_cost.o
99+
BROTLI_FILES += brotli/enc/metablock.o brotli/enc/static_dict.o brotli/enc/streams.o brotli/enc/utf8_util.o
100+
101+
ZSTD_FILES = zstd/fse.o zstd/huff0.o zstd/zstd.o zstd/zstdhc.o
102+
103+
MISC_FILES = crush/crush.o shrinker/shrinker.o yappy/yappy.o fastlz/fastlz.o tornado/tor_test.o pithy/pithy.o lzjb/lzjb2010.o wflz/wfLZ.o
104+
105+
lzbench: $(LZF_FILES) $(LZRW_FILES) $(ZSTD_FILES) $(BROTLI_FILES) $(CSC_FILES) $(LZMA_FILES) $(DENSITY_FILES) $(ZLING_FILES) $(QUICKLZ_FILES) $(SNAPPY_FILES) $(ZLIB_FILES) $(LZHAM_FILES) $(LZO_FILES) $(UCL_FILES) $(LZMAT_FILES) $(LZ4_FILES) $(MISC_FILES) _lzbench/lzbench.o _lzbench/compressors.o
106+
$(GPP) $^ -o $@ $(LDFLAGS)
107+
108+
.c.o:
109+
$(GCC) $(CFLAGS) $< -std=c99 -c -o $@
110+
111+
.cc.o:
112+
$(GPP) $(CFLAGS) $< -c -o $@
113+
114+
.cpp.o:
115+
$(GPP) $(CFLAGS) $< -c -o $@
116+
117+
clean:
118+
rm -f _lzbench/*.o brotli/enc/*.o brotli/dec/*.o libcsc/*.o wflz/*.o lzjb/*.o lzma/*.o density/spookyhash/*.o density/*.o pithy/*.o zstd/*.o libzling/*.o yappy/*.o shrinker/*.o fastlz/*.o ucl/*.o zlib/*.o lzham/*.o lzmat/*.o lz5/*.o lz4/*.o crush/*.o lzf/*.o lzrw/*.o lzo/*.o snappy/*.o quicklz/*.o tornado/*.o *.o *.exe

NEWS

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
v0.7
2+
The first release for GitHub

README.md

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
Introduction
2+
-------------------------
3+
4+
lzbench is an in-memory benchmark of the fastest open-source LZ77/LZSS compressors. It joins all compressors into a single exe.
5+
At the beginning an input file is read to memory.
6+
Then all compressors are used to compress and decompress the file and decompressed file is verified.
7+
This approach has a big advantage of using the same compiler with the same optimizations for all compressors.
8+
The disadvantage is that it requires source code of each compressor (therefore Slug or lzturbo are not included).
9+
10+
11+
Options
12+
-------------------------
13+
14+
- The "-iX" option selects number of iterations (default 1) and displays best time of X iterations.
15+
- The "-bX" option divides input data in blocks/chunks of size X KB (default = 2097152 KB)
16+
- The "-sX" selects only compressors with compression speed over X MB (default = 100 MB) - so far it's only approximation
17+
18+
19+
Compilation
20+
-------------------------
21+
For Linux/Unix:
22+
```
23+
make BUILD_SYSTEM=linux
24+
```
25+
26+
For Windows (MinGW)
27+
```
28+
make
29+
```
30+
31+
To remove one of compressors you can add -DBENCH_REMOVE_XXX to $DEFINES in Makefile (e.g. DEFINES += -DBENCH_REMOVE_LZ5 to remove LZ5).
32+
33+
Supported compressors
34+
-------------------------
35+
```
36+
brotli 2015-10-29
37+
crush 1.0
38+
csc 3.3
39+
density 0.12.5 beta
40+
fastlz 0.1
41+
lz4 r131
42+
lz4hc r131
43+
lz5 r131
44+
lz5hc r131
45+
lzf
46+
lzham 1.0
47+
lzjb 2010
48+
lzma 9.38
49+
lzmat 1.01
50+
lzo 2.09
51+
lzrw1
52+
lzrw1a
53+
lzrw2
54+
lzrw3
55+
lzrw3a
56+
pithy 2011-12-24
57+
quicklz 1.5.0
58+
quicklz 1.5.1 b7
59+
shrinker
60+
snappy 1.1.3
61+
tornado 0.6
62+
ucl 1.03
63+
yappy
64+
zlib 1.2.8
65+
zling 2015-09-15
66+
zstd v0.3
67+
zstd_HC v0.3
68+
```
69+

0 commit comments

Comments
 (0)