-
Notifications
You must be signed in to change notification settings - Fork 102
Closed
Labels
blockerSomething that needs to be fixed before next releaseSomething that needs to be fixed before next releasebug
Description
If I make multiple calls to Write, the resulting compressed data stream length is much greater than buffering the data and making a single call to Write.
— Is this expected behaviour? The reason I ask is that if chained with other writers, one cannot make any guarantees as to how they may parcel up their data.
Code (error handling omitted):
func main() {
b := &bytes.Buffer{}
for i := 0; i < 500; i++ {
b.Write([]byte("Hello World! "))
}
data1 := b.Bytes()
fmt.Println("data len", len(data1))
// Compress 1
buffer1 := &bytes.Buffer{}
w1 := zstd.NewWriterLevel(buffer1, CompressionLevel)
w1.Write(data1)
w1.Close()
fmt.Println("buffer1 len", buffer1.Len())
// Compress 2
buffer2 := &bytes.Buffer{}
w2 := zstd.NewWriterLevel(buffer2, CompressionLevel)
for i := 0; i < 500; i++ {
w2.Write([]byte("Hello World! "))
}
w2.Close()
fmt.Println("buffer2 len", buffer2.Len())
}Output:
data len 6500
buffer1 len 33
buffer2 len 5014Regards
arl
Metadata
Metadata
Assignees
Labels
blockerSomething that needs to be fixed before next releaseSomething that needs to be fixed before next releasebug