Reduce the size of the MessageID structs by one word on 64-bit arch #316
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
An int occupies one word of memory; on 64-bit machines, this is 8 bytes.
As a result, the messageID struct is 56-bytes:
This commit changes the type of batchIdx and partitionIdx fields to int32,
which saves one word of memory and maintains alignment of struct fields.
Reducing the size of the MessageID structs is important as they are
currently allocated on the heap for every message produced or consumed.
Signed-off-by: Daniel Ferstay dferstay@splunk.com
Motivation
The motivation is to reduce the amount of heap allocated memory for each message produced and consumed.
Modifications
This commit changes the type batchIdx and partitionIdx fields to int32,
which saves one word of memory and maintains alignment of struct fields.
Verifying this change
This change is already covered by existing tests that produce or consume messages.
Does this pull request potentially affect one of the following parts:
If
yes
was chosen, please highlight the changesDocumentation