From: Willy Tarreau Date: Sat, 7 Dec 2013 00:01:39 +0000 (+0100) Subject: DIET/MINOR: task: reduce struct task size by 8 bytes X-Git-Tag: v1.5-dev20~75 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=05efc0f33a0eaa0762f7781b51d27c9886b8c7a3;p=thirdparty%2Fhaproxy.git DIET/MINOR: task: reduce struct task size by 8 bytes Just by reordering the struct task, we could shrink it by 8 bytes from 120 to 112 bytes. A careful reordering allowed each part to be located closer to the hot parts it's used with, resulting in another performance increase of about 0.5%. --- diff --git a/include/types/task.h b/include/types/task.h index 405404bd0d..0379a22b85 100644 --- a/include/types/task.h +++ b/include/types/task.h @@ -52,14 +52,14 @@ /* The base for all tasks */ struct task { - struct eb32_node wq; /* ebtree node used to hold the task in the wait queue */ struct eb32_node rq; /* ebtree node used to hold the task in the run queue */ - int state; /* task state : bit field of TASK_* */ - int expire; /* next expiration date for this task, in ticks */ + unsigned short state; /* task state : bit field of TASK_* */ + short nice; /* the task's current nice value from -1024 to +1024 */ unsigned int calls; /* number of times ->process() was called */ struct task * (*process)(struct task *t); /* the function which processes the task */ void *context; /* the task's context */ - int nice; /* the task's current nice value from -1024 to +1024 */ + struct eb32_node wq; /* ebtree node used to hold the task in the wait queue */ + int expire; /* next expiration date for this task, in ticks */ }; /*