From 03d23e6faa2afd526771331083eda0f1d0bb0d3b Mon Sep 17 00:00:00 2001 From: greatroar <@> Date: Fri, 6 Mar 2020 09:18:38 +0100 Subject: [PATCH] Speed up blob sorting in internal/repository MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit name old time/op new time/op delta SortCachedPacksFirst-8 208µs ± 3% 186µs ± 3% -10.74% (p=0.000 n=10+8) name old alloc/op new alloc/op delta SortCachedPacksFirst-8 213kB ± 0% 139kB ± 0% -34.62% (p=0.000 n=10+10) name old allocs/op new allocs/op delta SortCachedPacksFirst-8 1.03k ± 0% 1.03k ± 0% -0.19% (p=0.000 n=10+10) --- internal/repository/repository.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/repository/repository.go b/internal/repository/repository.go index cee36ace8..47cf4fb0a 100644 --- a/internal/repository/repository.go +++ b/internal/repository/repository.go @@ -116,6 +116,7 @@ type haver interface { } // sortCachedPacksFirst moves all cached pack files to the front of blobs. +// It overwrites blobs. func sortCachedPacksFirst(cache haver, blobs []restic.PackedBlob) []restic.PackedBlob { if cache == nil { return blobs @@ -126,7 +127,7 @@ func sortCachedPacksFirst(cache haver, blobs []restic.PackedBlob) []restic.Packe return blobs } - cached := make([]restic.PackedBlob, 0, len(blobs)/2) + cached := blobs[:0] noncached := make([]restic.PackedBlob, 0, len(blobs)/2) for _, blob := range blobs {