This commit is contained in:
Joey Hess 2019-11-22 19:48:34 -04:00
parent 4cc6985494
commit 960f62a564
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 12 additions and 1 deletions

View file

@ -1,6 +1,6 @@
git-annex (7.20191115) UNRELEASED; urgency=medium git-annex (7.20191115) UNRELEASED; urgency=medium
* Sped up many git-annex commands that operare on many files, by * Sped up many git-annex commands that operate on many files, by
avoiding reserialization of keys. avoiding reserialization of keys.
find is 7% faster; whereis is 3% faster; and git-annex get when find is 7% faster; whereis is 3% faster; and git-annex get when
all files are already present is 5% faster all files are already present is 5% faster

View file

@ -0,0 +1,11 @@
Today, sped up many git-annex commands by around 5%. Often git-annex
traverses the work tree and deserializes keys to its Key data type, only to
turn around and do something with a Key that needs it to be serialized
again. So caching the original serialization of a key avoids that work. I
had started on this in January but had to throw my first attempt away.
The big bytestring conversion in January only yielded a 5-15% speedup,
so an extra 5% is a nice bonus for so relativly little work today.
It also feels like this optimisation approach is nearly paid out though;
only converting all filepath operations to bytestrings seems likely to
yield a similar widespread improvement.