Code

[PATCH] don't load and decompress objects twice with parse_object()
authorNicolas Pitre <nico@cam.org>
Fri, 6 May 2005 17:48:34 +0000 (13:48 -0400)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 6 May 2005 18:02:01 +0000 (11:02 -0700)
commitbd2c39f58f915af532b488c5bda753314f0db603
tree8c1e85a4af5d77cff94fc2703c271bbfc512778e
parentf4f21ce367a5119be1c4396d01271ece6e40ff70
[PATCH] don't load and decompress objects twice with parse_object()

It turns out that parse_object() is loading and decompressing given
object to free it just before calling the specific object parsing
function which does mmap and decompress the same object again. This
patch introduces the ability to parse specific objects directly from a
memory buffer.

Without this patch, running git-fsck-cache on the kernel repositorytake:

real    0m13.006s
user    0m11.421s
sys     0m1.218s

With this patch applied:

real    0m8.060s
user    0m7.071s
sys     0m0.710s

The performance increase is significant, and this is kind of a
prerequisite for sane delta object support with fsck.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
blob.c
blob.h
commit.c
commit.h
object.c
tag.c
tag.h
tree.c
tree.h