Adrian Chadd wrote:
> You could start by changing sdirno into a byte instead of an int.
> That chops 3 bytes (on 32 bit archs) out per StoreEntry.
Done (and moved things around to account for alignment).
Now the structure on 32-bit platforms looks like
8 hash_link hash; /* must be first */
4 MemObject *mem_obj;
4 RemovalPolicyNode repl;
4 time_t timestamp;
4 time_t lastref;
4 time_t expires;
4 time_t lastmod;
4 size_t swap_file_sz;
4 sfileno swap_filen;
2 u_short refcount;
2 u_short flags;
2 u_short lock_count; /* Assume < 65536! */
mem_status_t mem_status:3;
ping_status_t ping_status:3;
store_status_t store_status:3;
2 swap_status_t swap_status:3;
1 sdirno swap_dirn;
===
49
but due to alignment requirements the structure is 52 bytes regardless..
(+ 4 bytes malloc overhead, 56 in total). We need to kill one more byte
to gain anything from this.
/Henrik
Received on Mon Jan 08 2001 - 18:38:13 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:13:14 MST