All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] pack-object: trim memory usage a tiny bit
@ 2010-08-06 17:00 Nguyễn Thái Ngọc Duy
  2010-08-06 23:58 ` Sverre Rabbelier
  0 siblings, 1 reply; 7+ messages in thread
From: Nguyễn Thái Ngọc Duy @ 2010-08-06 17:00 UTC (permalink / raw)
  To: git; +Cc: Nguyễn Thái Ngọc Duy

This shrinks struct object_entry from 88 bytes to 80 bytes on my 32
bit machine. So that would be 12M less on linux-2.6.git (1.6M objects)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 Don't know if it's really worth a patch..

 builtin/pack-objects.c |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 0e81673..398c0bb 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -47,14 +47,14 @@ struct object_entry {
 	unsigned long delta_size;	/* delta data size (uncompressed) */
 	unsigned long z_delta_size;	/* delta data size (compressed) */
 	unsigned int hash;	/* name hint hash */
-	enum object_type type;
-	enum object_type in_pack_type;	/* could be delta */
+	enum object_type type:5;
+	enum object_type in_pack_type:5;	/* could be delta */
 	unsigned char in_pack_header_size;
-	unsigned char preferred_base; /* we do not pack this, but is available
-				       * to be used as the base object to delta
-				       * objects against.
-				       */
-	unsigned char no_try_delta;
+	unsigned char preferred_base:1; /* we do not pack this, but is available
+					 * to be used as the base object to delta
+					 * objects against.
+					 */
+	unsigned char no_try_delta:1;
 };
 
 /*
@@ -1001,6 +1001,7 @@ static void check_object(struct object_entry *entry)
 		unsigned int avail;
 		off_t ofs;
 		unsigned char *buf, c;
+		enum object_type in_pack_type;
 
 		buf = use_pack(p, &w_curs, entry->in_pack_offset, &avail);
 
@@ -1009,8 +1010,9 @@ static void check_object(struct object_entry *entry)
 		 * since non-delta representations could still be reused.
 		 */
 		used = unpack_object_header_buffer(buf, avail,
-						   &entry->in_pack_type,
+						   &in_pack_type,
 						   &entry->size);
+		entry->in_pack_type = in_pack_type;
 		if (used == 0)
 			goto give_up;
 
-- 
1.7.1.rc1.69.g24c2f7

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-08-07  0:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-06 17:00 [PATCH] pack-object: trim memory usage a tiny bit Nguyễn Thái Ngọc Duy
2010-08-06 23:58 ` Sverre Rabbelier
2010-08-07  0:03   ` Nguyen Thai Ngoc Duy
2010-08-07  0:04     ` Sverre Rabbelier
2010-08-07  0:16       ` Nguyen Thai Ngoc Duy
2010-08-07  0:18         ` Shawn O. Pearce
2010-08-07  0:21           ` Nguyen Thai Ngoc Duy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.