diff --git a/internal/repository/pool.go b/internal/repository/pool.go deleted file mode 100644 index b87791f14..000000000 --- a/internal/repository/pool.go +++ /dev/null @@ -1,21 +0,0 @@ -package repository - -import ( - "sync" - - "github.com/restic/chunker" -) - -var bufPool = sync.Pool{ - New: func() interface{} { - return make([]byte, chunker.MaxSize/3) - }, -} - -func getBuf() []byte { - return bufPool.Get().([]byte) -} - -func freeBuf(data []byte) { - bufPool.Put(data) -} diff --git a/internal/repository/repository.go b/internal/repository/repository.go index 67df4b3b2..3457f54d6 100644 --- a/internal/repository/repository.go +++ b/internal/repository/repository.go @@ -225,13 +225,10 @@ func (r *Repository) SaveAndEncrypt(ctx context.Context, t restic.BlobType, data debug.Log("save id %v (%v, %d bytes)", id, t, len(data)) - // get buf from the pool - ciphertext := getBuf() - - ciphertext = ciphertext[:0] nonce := crypto.NewRandomNonce() + + ciphertext := make([]byte, 0, restic.CiphertextLength(len(data))) ciphertext = append(ciphertext, nonce...) - defer freeBuf(ciphertext) // encrypt blob ciphertext = r.key.Seal(ciphertext, nonce, data, nil) diff --git a/internal/repository/repository_test.go b/internal/repository/repository_test.go index 43d70c533..4ec71e726 100644 --- a/internal/repository/repository_test.go +++ b/internal/repository/repository_test.go @@ -104,6 +104,7 @@ func BenchmarkSaveAndEncrypt(t *testing.B) { id := restic.ID(sha256.Sum256(data)) + t.ReportAllocs() t.ResetTimer() t.SetBytes(int64(size))