From afc593676a8166419126a4575ad4842dcccb0b22 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Tue, 24 Jan 2017 12:38:44 +0100 Subject: [PATCH] fuse: Improve memory usage Discard blobs that aren't in use any more. This greatly reduces memory usage and will probably only trigger on sequential read (e.g. for restore via fuse). Closes #480 --- src/restic/fuse/file.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/restic/fuse/file.go b/src/restic/fuse/file.go index be63e8e89..6bfa2e4a1 100644 --- a/src/restic/fuse/file.go +++ b/src/restic/fuse/file.go @@ -91,6 +91,11 @@ func (f *file) getBlobAt(i int) (blob []byte, err error) { return f.blobs[i], nil } + // release earlier blobs + for j := 0; j < i; j++ { + f.blobs[j] = nil + } + buf := restic.NewBlobBuffer(f.sizes[i]) n, err := f.repo.LoadBlob(restic.DataBlob, f.node.Content[i], buf) if err != nil {