pyfec: add bragging about how fec is way faster than "par2"

This commit is contained in:
Zooko O'Whielacronx 2007-04-14 17:47:48 -07:00
parent 049d8d1576
commit 502c979307

View File

@ -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