diff options
author | Alberto Cortés <alberto@sourced.tech> | 2016-01-26 02:26:38 +0100 |
---|---|---|
committer | Alberto Cortés <alberto@sourced.tech> | 2016-01-26 02:26:38 +0100 |
commit | 3db12e2e2f550ade9670efbe2ad72608845bb88e (patch) | |
tree | a53c5a95f3eb35958e3aeff7f778cdaf6a414088 /formats/packfile/common.go | |
parent | 050fb78d77b30014acd0b6eefc88ec8a49c20371 (diff) | |
download | go-git-3db12e2e2f550ade9670efbe2ad72608845bb88e.tar.gz |
Speed up packfile reading
By adding a bufio to the trackingReader, otherwise most of the time
is spent in syscalls for small reads to the packfile.
Diffstat (limited to 'formats/packfile/common.go')
-rw-r--r-- | formats/packfile/common.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/formats/packfile/common.go b/formats/packfile/common.go index 06c63d4..57bc0b9 100644 --- a/formats/packfile/common.go +++ b/formats/packfile/common.go @@ -1,6 +1,7 @@ package packfile import ( + "bufio" "fmt" "io" ) @@ -10,6 +11,12 @@ type trackingReader struct { position int64 } +func NewTrackingReader(r io.Reader) *trackingReader { + return &trackingReader{ + r: bufio.NewReader(r), + } +} + func (t *trackingReader) Read(p []byte) (n int, err error) { n, err = t.r.Read(p) if err != nil { |