diff options
author | David Symonds <dsymonds@golang.org> | 2019-11-21 09:51:39 +1100 |
---|---|---|
committer | David Symonds <dsymonds@golang.org> | 2020-03-10 09:57:31 +1100 |
commit | d3dd84b7108ed4a062dced6e1d2d5dd4537c9e57 (patch) | |
tree | 53c87602397a3aef815393294c9322e080d13a51 /plumbing/revlist/revlist.go | |
parent | 18a858b38ca4197987a6da7058ab0397255fa82c (diff) | |
download | go-git-d3dd84b7108ed4a062dced6e1d2d5dd4537c9e57.tar.gz |
plumbing/object: avoid O(N^2) string building when decoding commit message
Most commits have relatively small messages, so this was never
noticeable. However, there are some repositories that have
semi-automated messages that can get very large (e.g.
github.com/riscv/riscv-clang and its riscv-trunk branch), on the order
of 109k lines. Changing from string += to using a bytes.Buffer reduces
the time for Commit.Decode for that specific case from 35s to 74ms.
Signed-off-by: David Symonds <dsymonds@golang.org>
Diffstat (limited to 'plumbing/revlist/revlist.go')
0 files changed, 0 insertions, 0 deletions