Overview
| Comment: | 0dev.org/ioutil/SizedReader is now as fast as bufio.Reader if not faster for a buffer of 4096 bytes. Switched pdc to use it for decompression buffering and removed profiling code from the former |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
2cec92909fddd24feaed596e3bc146c7 |
| User & Date: | spaskalev on 2014-12-24 23:58:32.639 |
| Other Links: | manifest | tags |
Context
|
2014-12-25
| ||
| 00:26 | Extracted SizedWriter to a sizedWriter struct with a Write() method. check-in: 46da7a6ae9 user: spaskalev tags: trunk | |
|
2014-12-24
| ||
| 23:58 | 0dev.org/ioutil/SizedReader is now as fast as bufio.Reader if not faster for a buffer of 4096 bytes. Switched pdc to use it for decompression buffering and removed profiling code from the former check-in: 2cec92909f user: spaskalev tags: trunk | |
| 23:45 | Extracted SizedReader to a sizedReader type with a Read() method. Closures seem to be slower in Go 1.4 and there is no real need for SizedReader to be a closure. check-in: b703c38e0b user: spaskalev tags: trunk | |
Changes
Modified src/0dev.org/commands/pdc/main.go
from [675059111f]
to [dfe0b7b6cf].
1 2 3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | - - - - - | package main import ( |
| ︙ | |||
61 62 63 64 65 66 67 | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | - |
// 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 io.Writer = iou.SizedWriter(output, 4096)
decompressor io.Reader = predictor.Decompressor(iou.SizedReader(input, 4096))
|
| ︙ |
Modified src/0dev.org/ioutil/ioutil.go
from [c84493a1fe]
to [9862ea3396].
| ︙ | |||
103 104 105 106 107 108 109 | 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | - + - + | var ( count int err error ) start: // Reply with the buffered data if there is any |
| ︙ | |||
132 133 134 135 136 137 138 | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | - + | // Perform a read into the buffer count, err = sr.reader.Read(sr.buffer) // Size the buffer down to the read data size // and restart if we have successfully read some bytes sr.from, sr.to = 0, count |