git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] pack-object: trim memory usage a tiny bit

From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Date
Aug 7, 2010, 00:16 UTC
Message-ID
<AANLkTimEFjRuuO+GnAV7PGe0oPi-Qh37iLS6o3Q8Undw@mail.gmail.com>
In-Reply-To
<AANLkTingdhx5osnbiLVMyWaauCf1TRiMzcSC76gQRp9B@mail.gmail.com>
On Sat, Aug 7, 2010 at 10:04 AM, Sverre Rabbelier <srabbelier@gmail.com> wrote:
Show 9 quoted lines
> Heya,
>
> On Fri, Aug 6, 2010 at 19:03, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
>> struct object_entry is allocated for every object to be packed. So if
>> you do a clone on linux-2.6, you would need 1.6M of those structs, 88
>> bytes each. I cut 8 bytes from each of them.
>
> Sure, that was clear enough. But _how_? What needs to be done to
> retain this? Are there any downsides?

Ah, by packing it tighter using bitfields. There are two fields that act as boolean, but they use at least one byte each. And enum object_type, I recall, uses 4 bytes (int), while it only needs 5 bits (4 bits is enough if OBJ_BAD is not counted). No downsides I know of.

-- 
Duy
Previous: Sverre RabbelierNext: Shawn O. Pearce
Message 5 of 7 in “pack-object: trim memory usage a tiny bit”
  1. pack-object: trim memory usage a tiny bitNguyễn Thái Ngọc Duy, Aug 6, 2010
  2. Sverre RabbelierAug 6, 2010
  3. Nguyen Thai Ngoc DuyAug 7, 2010
  4. Sverre RabbelierAug 7, 2010
  5. Nguyen Thai Ngoc DuyAug 7, 2010
  6. Shawn O. PearceAug 7, 2010
  7. Nguyen Thai Ngoc DuyAug 7, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.