Merging upstream version 1.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e627412516
commit
8b0a7cb0e8
16 changed files with 182 additions and 181 deletions
112
doc/plzip.info
112
doc/plzip.info
|
@ -11,13 +11,13 @@ File: plzip.info, Node: Top, Next: Introduction, Up: (dir)
|
|||
Plzip Manual
|
||||
************
|
||||
|
||||
This manual is for Plzip (version 1.4-rc1, 23 May 2015).
|
||||
This manual is for Plzip (version 1.4, 9 July 2015).
|
||||
|
||||
* Menu:
|
||||
|
||||
* Introduction:: Purpose and features of plzip
|
||||
* Program design:: Internal structure of plzip
|
||||
* Invoking plzip:: Command line interface
|
||||
* Program design:: Internal structure of plzip
|
||||
* File format:: Detailed format of the compressed file
|
||||
* Memory requirements:: Memory required to compress and decompress
|
||||
* Minimum file sizes:: Minimum file sizes required for full speed
|
||||
|
@ -31,7 +31,7 @@ This manual is for Plzip (version 1.4-rc1, 23 May 2015).
|
|||
copy, distribute and modify it.
|
||||
|
||||
|
||||
File: plzip.info, Node: Introduction, Next: Program design, Prev: Top, Up: Top
|
||||
File: plzip.info, Node: Introduction, Next: Invoking plzip, Prev: Top, Up: Top
|
||||
|
||||
1 Introduction
|
||||
**************
|
||||
|
@ -59,7 +59,8 @@ availability:
|
|||
recovery means. The lziprecover program can repair bit-flip errors
|
||||
(one of the most common forms of data corruption) in lzip files,
|
||||
and provides data recovery capabilities, including error-checked
|
||||
merging of damaged copies of a file.
|
||||
merging of damaged copies of a file. *note Data safety:
|
||||
(lziprecover)Data safety.
|
||||
|
||||
* The lzip format is as simple as possible (but not simpler). The
|
||||
lzip manual provides the code of a simple decompressor along with
|
||||
|
@ -122,43 +123,9 @@ until you verify the compressed file with a command like
|
|||
'plzip -cd file.lz | cmp file -'.
|
||||
|
||||
|
||||
File: plzip.info, Node: Program design, Next: Invoking plzip, Prev: Introduction, Up: Top
|
||||
File: plzip.info, Node: Invoking plzip, Next: Program design, Prev: Introduction, Up: Top
|
||||
|
||||
2 Program design
|
||||
****************
|
||||
|
||||
When compressing, plzip divides the input file into chunks and
|
||||
compresses as many chunks simultaneously as worker threads are chosen,
|
||||
creating a multi-member compressed file.
|
||||
|
||||
When decompressing, plzip decompresses as many members
|
||||
simultaneously as worker threads are chosen. Files that were compressed
|
||||
with lzip will not be decompressed faster than using lzip (unless the
|
||||
'-b' option was used) because lzip usually produces single-member
|
||||
files, which can't be decompressed in parallel.
|
||||
|
||||
For each input file, a splitter thread and several worker threads are
|
||||
created, acting the main thread as muxer (multiplexer) thread. A "packet
|
||||
courier" takes care of data transfers among threads and limits the
|
||||
maximum number of data blocks (packets) being processed simultaneously.
|
||||
|
||||
The splitter reads data blocks from the input file, and distributes
|
||||
them to the workers. The workers (de)compress the blocks received from
|
||||
the splitter. The muxer collects processed packets from the workers, and
|
||||
writes them to the output file.
|
||||
|
||||
When decompressing from a regular file, the splitter is removed and
|
||||
the workers read directly from the input file. If the output file is
|
||||
also a regular file, the muxer is also removed and the workers write
|
||||
directly to the output file. With these optimizations, the use of RAM
|
||||
is greatly reduced and the decompression speed of large files with many
|
||||
members is only limited by the number of processors available and by
|
||||
I/O speed.
|
||||
|
||||
|
||||
File: plzip.info, Node: Invoking plzip, Next: File format, Prev: Program design, Up: Top
|
||||
|
||||
3 Invoking plzip
|
||||
2 Invoking plzip
|
||||
****************
|
||||
|
||||
The format for running plzip is:
|
||||
|
@ -199,7 +166,7 @@ The format for running plzip is:
|
|||
|
||||
'-F'
|
||||
'--recompress'
|
||||
Force recompression of files whose name already has the '.lz' or
|
||||
Force re-compression of files whose name already has the '.lz' or
|
||||
'.tlz' suffix.
|
||||
|
||||
'-k'
|
||||
|
@ -318,7 +285,41 @@ invalid input file, 3 for an internal consistency error (eg, bug) which
|
|||
caused plzip to panic.
|
||||
|
||||
|
||||
File: plzip.info, Node: File format, Next: Memory requirements, Prev: Invoking plzip, Up: Top
|
||||
File: plzip.info, Node: Program design, Next: File format, Prev: Invoking plzip, Up: Top
|
||||
|
||||
3 Program design
|
||||
****************
|
||||
|
||||
When compressing, plzip divides the input file into chunks and
|
||||
compresses as many chunks simultaneously as worker threads are chosen,
|
||||
creating a multi-member compressed file.
|
||||
|
||||
When decompressing, plzip decompresses as many members
|
||||
simultaneously as worker threads are chosen. Files that were compressed
|
||||
with lzip will not be decompressed faster than using lzip (unless the
|
||||
'-b' option was used) because lzip usually produces single-member
|
||||
files, which can't be decompressed in parallel.
|
||||
|
||||
For each input file, a splitter thread and several worker threads are
|
||||
created, acting the main thread as muxer (multiplexer) thread. A "packet
|
||||
courier" takes care of data transfers among threads and limits the
|
||||
maximum number of data blocks (packets) being processed simultaneously.
|
||||
|
||||
The splitter reads data blocks from the input file, and distributes
|
||||
them to the workers. The workers (de)compress the blocks received from
|
||||
the splitter. The muxer collects processed packets from the workers, and
|
||||
writes them to the output file.
|
||||
|
||||
When decompressing from a regular file, the splitter is removed and
|
||||
the workers read directly from the input file. If the output file is
|
||||
also a regular file, the muxer is also removed and the workers write
|
||||
directly to the output file. With these optimizations, the use of RAM
|
||||
is greatly reduced and the decompression speed of large files with many
|
||||
members is only limited by the number of processors available and by
|
||||
I/O speed.
|
||||
|
||||
|
||||
File: plzip.info, Node: File format, Next: Memory requirements, Prev: Program design, Up: Top
|
||||
|
||||
4 File format
|
||||
*************
|
||||
|
@ -398,15 +399,16 @@ The amount of memory required *per thread* is approximately the
|
|||
following:
|
||||
|
||||
* For compression at level -0; 1.5 MiB plus 3 times the data size
|
||||
(*note --data-size::). About 4.5 MiB.
|
||||
(*note --data-size::). Default is 4.5 MiB.
|
||||
|
||||
* For compression at other levels; 11 times the dictionary size plus
|
||||
3 times the data size. Default is 136 MiB.
|
||||
|
||||
* For decompression of a regular (seekable) file to another regular
|
||||
file, or for testing of a regular file; the dictionary size. Note
|
||||
that regular files with more than 1024 bytes of trailing garbage
|
||||
are treated as non-seekable.
|
||||
file, or for testing of a regular file; the dictionary size.
|
||||
|
||||
(Note that regular files with more than 1024 bytes of trailing
|
||||
garbage are treated as non-seekable).
|
||||
|
||||
* For testing of a non-seekable file or of standard input; the
|
||||
dictionary size plus up to 5 MiB.
|
||||
|
@ -493,15 +495,15 @@ Concept index
|
|||
|
||||
Tag Table:
|
||||
Node: Top221
|
||||
Node: Introduction988
|
||||
Node: Program design5285
|
||||
Node: Invoking plzip6874
|
||||
Ref: --data-size7288
|
||||
Node: File format12512
|
||||
Node: Memory requirements14925
|
||||
Node: Minimum file sizes16029
|
||||
Node: Problems17951
|
||||
Node: Concept index18487
|
||||
Node: Introduction984
|
||||
Node: Invoking plzip5332
|
||||
Ref: --data-size5747
|
||||
Node: Program design10972
|
||||
Node: File format12560
|
||||
Node: Memory requirements14973
|
||||
Node: Minimum file sizes16085
|
||||
Node: Problems18007
|
||||
Node: Concept index18543
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue