Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH] rev-list: preallocate object hash table in --all --objects

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:56:34

Jeff King [off-list ref] writes:
quoted hunk
This feels weirdly specific, and like we should just be tuning our hash
table growth better. You show a 3.2% speedup here. I was able to get a
2.8% speedup just by doing this:
diff --git a/object.c b/object.c
index 20703f5..8e5e12c 100644
--- a/object.c
+++ b/object.c
@@ -91,7 +91,7 @@ static void grow_object_hash(void)
 static void grow_object_hash(void)
 {
 	int i;
-	int new_hash_size = obj_hash_size < 32 ? 32 : 2 * obj_hash_size;
+	int new_hash_size = obj_hash_size < 32 ? 32 : 3 * obj_hash_size;
 	struct object **new_hash;
 
 	new_hash = xcalloc(new_hash_size, sizeof(struct object *));
It might be worth trying to figure out what the optimium growth rate is
first, which would help this use case and others. With less fragile
code.
I agree with the general principle to avoid heuristics that is too
specific to the use case.  Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help