mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-20 05:28:04 +00:00
pyfec: add bragging about how fec is way faster than "par2"
This commit is contained in:
parent
049d8d1576
commit
502c979307
@ -78,12 +78,12 @@ input to the encoding step.
|
|||||||
The bin/ directory contains two Unix-style, command-line tools "fec" and
|
The bin/ directory contains two Unix-style, command-line tools "fec" and
|
||||||
"unfec". Execute "fec --help" or "unfec --help" for usage instructions.
|
"unfec". Execute "fec --help" or "unfec --help" for usage instructions.
|
||||||
|
|
||||||
Note: a Unix-style tool like "fec" does only one thing -- in this case erasure
|
Note: a Unix-style tool like "fec" does only one thing -- in this case
|
||||||
coding -- and leaves other tasks to other tools. Other Unix-style tools that
|
erasure coding -- and leaves other tasks to other tools. Other Unix-style
|
||||||
go well with "fec" include "GNU tar" for packaging up multiple files and
|
tools that go well with "fec" include "GNU tar" for packaging up multiple
|
||||||
directories into one bundle, "rzip" for compression, and "GNU Privacy Guard"
|
files and directories into one bundle, "rzip" for compression, and "GNU
|
||||||
for encryption. It is best to do things in that order: first package, then
|
Privacy Guard" for encryption. It is important to do things in order: first
|
||||||
compress, then encrypt, then erasure code.
|
package, then compress, then encrypt, then erasure code.
|
||||||
|
|
||||||
|
|
||||||
* API
|
* API
|
||||||
@ -157,18 +157,30 @@ objects (e.g. Python strings) to hold the data that you pass to pyfec.
|
|||||||
|
|
||||||
* Utilities
|
* Utilities
|
||||||
|
|
||||||
The filefec.py module which has a utility function for efficiently reading a
|
The filefec.py module has a utility function for efficiently reading a file
|
||||||
file and encoding it piece by piece.
|
and encoding it piece by piece. This module is used by the "fec" and "unfec"
|
||||||
|
command-line tools from the bin/ directory.
|
||||||
|
|
||||||
|
|
||||||
* Dependencies
|
* Dependencies
|
||||||
|
|
||||||
A C compiler is required. For the Python API, we have tested it with Python
|
A C compiler is required. To use the Python API or the command-line tools a
|
||||||
v2.4 and v2.5.
|
Python interpreter is also required. We have tested it with Python v2.4 and
|
||||||
|
v2.5.
|
||||||
|
|
||||||
|
|
||||||
* Performance Measurements
|
* Performance Measurements
|
||||||
|
|
||||||
|
On my Athlon 64 2.4 GHz workstation (running Linux), the "fec" command-line
|
||||||
|
tool encoded a 160 MB file with m=100, k=94 (about 6% redundancy) in 3.9
|
||||||
|
seconds, where the "par2" tool encoded the file with about 6% redundancy in
|
||||||
|
27 seconds. "fec" encoded the same file with m=12, k=6 (100% redundancy) in
|
||||||
|
4.1 seconds, where par2 encoded it with about 100% redundancy in 7 minutes
|
||||||
|
and 56 seconds.
|
||||||
|
|
||||||
|
The underlying C library in benchmark mode encoded from a file at about
|
||||||
|
4.9 million bytes per second and decoded at about 5.8 million bytes per second.
|
||||||
|
|
||||||
On Peter's fancy Intel Mac laptop (2.16 GHz Core Duo), it encoded from a file
|
On Peter's fancy Intel Mac laptop (2.16 GHz Core Duo), it encoded from a file
|
||||||
at about 6.2 million bytes per second.
|
at about 6.2 million bytes per second.
|
||||||
|
|
||||||
@ -178,10 +190,6 @@ at about 6.8 million bytes per second.
|
|||||||
On my old PowerPC G4 867 MHz Mac laptop, it encoded from a file at about 1.3
|
On my old PowerPC G4 867 MHz Mac laptop, it encoded from a file at about 1.3
|
||||||
million bytes per second.
|
million bytes per second.
|
||||||
|
|
||||||
On my Athlon 64 2.4 GHz workstation (running Linux), it encoded from a file at
|
|
||||||
about 4.9 million bytes per second and decoded at about 5.8 million bytes per
|
|
||||||
second.
|
|
||||||
|
|
||||||
|
|
||||||
* Acknowledgements
|
* Acknowledgements
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user