threads / patch / 48466

patchcommit.h: rearrange 'index' to shrink struct commit

Subject: [PATCH] commit.h: rearrange 'index' to shrink struct commit

## tl;dr

2 messages between May 11, 2018 and May 13, 2018. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Nguyễn Thái Ngọc Duy· May 11, 2018, 17:20 UTC · lore

On linux 64-bit architecture, pahole finds that there's a 4 bytes padding after 'index'. Moving it to the end reduces this struct's size from 72 to 64 bytes (because of another 4 bytes padding after graph_pos). On linux 32-bit, the struct size remains 52 bytes like before.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 commit.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to commit.h +1 −1
diff --git a/commit.h b/commit.h
index e57ae4b583..fd1cbe7263 100644
--- a/commit.h
+++ b/commit.h
@@ -19,11 +19,11 @@ struct commit_list {
 struct commit {
 	struct object object;
 	void *util;
-	unsigned int index;
 	timestamp_t date;
 	struct commit_list *parents;
 	struct tree *tree;
 	uint32_t graph_pos;
+	unsigned int index;
 };
 
 extern int save_commit_buffer;
-- 
2.17.0.705.g3525833791
Junio C Hamano· May 13, 2018, 02:03 UTC · re: Nguyễn Thái Ngọc Duy · lore

Re: [PATCH] commit.h: rearrange 'index' to shrink struct commit

Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:
Show 28 quoted lines
> On linux 64-bit architecture, pahole finds that there's a 4 bytes
> padding after 'index'. Moving it to the end reduces this struct's size
> from 72 to 64 bytes (because of another 4 bytes padding after
> graph_pos). On linux 32-bit, the struct size remains 52 bytes like
> before.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  commit.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/commit.h b/commit.h
> index e57ae4b583..fd1cbe7263 100644
> --- a/commit.h
> +++ b/commit.h
> @@ -19,11 +19,11 @@ struct commit_list {
>  struct commit {
>  	struct object object;
>  	void *util;
> -	unsigned int index;
>  	timestamp_t date;
>  	struct commit_list *parents;
>  	struct tree *tree;
>  	uint32_t graph_pos;
> +	unsigned int index;
>  };
>  
>  extern int save_commit_buffer;
Quite nice.

← back to recent threads