Overview
| Comment: | Buffer the input on decompressing, not the decompressor itself. This takes pdc -d < linux-3.18.1.tar.pdc > linux-3.18.1.tar down to 11 seconds from 13 minutes :) |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
4f0d26907d45681fbfce5a00fdfbf391 |
| User & Date: | spaskalev on 2014-12-20 17:44:14.642 |
| Other Links: | manifest | tags |
Context
|
2014-12-21
| ||
| 01:59 | Added a function that reverses the bits in a byte. Coverage: 100.0% of statements. check-in: 2be2ff6bf7 user: spaskalev tags: trunk | |
|
2014-12-20
| ||
| 17:44 | Buffer the input on decompressing, not the decompressor itself. This takes pdc -d < linux-3.18.1.tar.pdc > linux-3.18.1.tar down to 11 seconds from 13 minutes :) check-in: 4f0d26907d user: spaskalev tags: trunk | |
| 13:04 | Decompressor might loose part of the underlying buffer array by reslicing, fixed by copy check-in: d516e7425d user: spaskalev tags: trunk | |
Changes
Modified src/0dev.org/commands/pdc/main.go
from [3c0c8016e1]
to [c6f8b3fe28].
| ︙ | ︙ | |||
53 54 55 56 57 58 59 |
// Decompress the data from the given io.Reader and write it to the given io.Writer
// I/O is buffered for better performance
func decompress(output io.Writer, input io.Reader) int {
var (
err error
buffer *bufio.Writer = bufio.NewWriter(output)
| | | | 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
// Decompress the data from the given io.Reader and write it to the given io.Writer
// I/O is buffered for better performance
func decompress(output io.Writer, input io.Reader) int {
var (
err error
buffer *bufio.Writer = bufio.NewWriter(output)
decompressor io.Reader = predictor.Decompressor(bufio.NewReader(input))
)
_, err = io.Copy(buffer, decompressor)
if err != nil {
fmt.Fprintln(os.Stderr, "Error while decompressing.\n", err)
return 1
}
// Flush
err = buffer.Flush()
|
| ︙ | ︙ |