diff options
author | jailletc36 <jailletc36@13f79535-47bb-0310-9956-ffa450edef68> | 2023-02-19 09:15:23 +0000 |
---|---|---|
committer | jailletc36 <jailletc36@13f79535-47bb-0310-9956-ffa450edef68> | 2023-02-19 09:15:23 +0000 |
commit | 971f673a5b240642a26a41a563fc0a7654fdcba1 (patch) | |
tree | 46799e4beb84492cfb1b9e8b56fdec6c3bc8a99e /apr.dsw | |
parent | 22f1ccadfd2f61180da4bc62e1332d1c42381b3b (diff) | |
download | libapr-971f673a5b240642a26a41a563fc0a7654fdcba1.tar.gz |
Re-order the fields of 'struct apr_finfo_t' to avoid a hole and some padding.
On x86_64, this shrinks the size of the struct from 120 to 112 bytes.
Before the patch, pahole states that:
struct apr_finfo_t {
apr_pool_t * pool; /* 0 8 */
apr_int32_t valid; /* 8 4 */
apr_fileperms_t protection; /* 12 4 */
apr_filetype_e filetype; /* 16 4 */
apr_uid_t user; /* 20 4 */
apr_gid_t group; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
apr_ino_t inode; /* 32 8 */
apr_dev_t device; /* 40 8 */
apr_int32_t nlink; /* 48 4 */
/* XXX 4 bytes hole, try to pack */
apr_off_t size; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
apr_off_t csize; /* 64 8 */
apr_time_t atime; /* 72 8 */
apr_time_t mtime; /* 80 8 */
apr_time_t ctime; /* 88 8 */
const char * fname; /* 96 8 */
const char * name; /* 104 8 */
struct apr_file_t * filehand; /* 112 8 */
/* size: 120, cachelines: 2, members: 17 */
/* sum members: 112, holes: 2, sum holes: 8 */
/* last cacheline: 56 bytes */
};
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1907750 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'apr.dsw')
0 files changed, 0 insertions, 0 deletions