-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Closed
Description
This test code read all files in a folder to memory, and train a dictionary with these files:
(usage: modify PATH to zstd/lib/compress folder, should ends with \ or / depend on the system)
Then compare these two cases:
1, One shot compress, all files concatenated in a single flat buffer.
// load dictionary to context
cdict = ZSTD_createCDict(dict_buffer, DICT_SIZE, compression_level);
ZSTD_CCtx_refCDict(cctx, cdict);
// one shot compress
ZSTD_compressStream2(cctx, &out, &in, ZSTD_e_end);2, Stream compress, file by file.
// load dictionary to context
cdict = ZSTD_createCDict(dict_buffer, DICT_SIZE, compression_level);
ZSTD_CCtx_refCDict(cctx, cdict);
// stream compress, file by file
in.src = &input_buffer;
for (int i = 0; i < content_count; i++) {
in.size = content_sizes[i];
in.pos = 0;
ZSTD_compressStream2(cctx, &out, &in, ZSTD_e_continue);
in.src += content_sizes[i];
}
// end the frame
in.size = 0;
in.pos = 0;
ZSTD_compressStream2(cctx, &out, &in, ZSTD_e_end);It seems one shot compress doesn't respect compressionLevel, its output size is always 121086 bytes.
The output of test code:
Read 25 files, total read size: 687379
compressionLevel 0:
One shot compress, output size: 121086
Stream compress, output size: 120456
compressionLevel 1:
One shot compress, output size: 121086
Stream compress, output size: 150086
compressionLevel 2:
One shot compress, output size: 121086
Stream compress, output size: 136046
compressionLevel 3:
One shot compress, output size: 121086
Stream compress, output size: 120456
compressionLevel 4:
One shot compress, output size: 121086
Stream compress, output size: 119666
compressionLevel 5:
One shot compress, output size: 121086
Stream compress, output size: 109670
compressionLevel 6:
One shot compress, output size: 121086
Stream compress, output size: 102324
compressionLevel 7:
One shot compress, output size: 121086
Stream compress, output size: 100145
compressionLevel 8:
One shot compress, output size: 121086
Stream compress, output size: 97499
compressionLevel 9:
One shot compress, output size: 121086
Stream compress, output size: 95822
compressionLevel 10:
One shot compress, output size: 121086
Stream compress, output size: 94824
compressionLevel 11:
One shot compress, output size: 121086
Stream compress, output size: 94244
compressionLevel 12:
One shot compress, output size: 121086
Stream compress, output size: 92322
compressionLevel 13:
One shot compress, output size: 121086
Stream compress, output size: 96481
compressionLevel 14:
One shot compress, output size: 121086
Stream compress, output size: 88812
compressionLevel 15:
One shot compress, output size: 121086
Stream compress, output size: 86981
compressionLevel 16:
One shot compress, output size: 121086
Stream compress, output size: 86292
compressionLevel 17:
One shot compress, output size: 121086
Stream compress, output size: 86224
compressionLevel 18:
One shot compress, output size: 121086
Stream compress, output size: 86218
compressionLevel 19:
One shot compress, output size: 121086
Stream compress, output size: 86271
compressionLevel 20:
One shot compress, output size: 121086
Stream compress, output size: 86218
compressionLevel 21:
One shot compress, output size: 121086
Stream compress, output size: 86218
compressionLevel 22:
One shot compress, output size: 121086
Stream compress, output size: 86219
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels