Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Objects in 64bit java are 12bytes + member size aligned to 8 bytes
InputAttemptIdentifier -> 33Bytes gets aligned up to 40 bytes
This class is just one byte over the 32 byte alignment. Reducing object size by one byte can save 8 bytes per object.
This is ~8MB savings for 1,000,000 inputs and ~80 MB savings for tasks with 10,000,000 inputs to fetch (Yes this is a real job)
MapOutput -> 45 bytes gets aligned to 48 bytes
This class can be sub-classed to avoid all sub-classes paying the object size cost for the other sub-classes
Wait InMemory and DiskDirect -> 32 bytes
Disk -> 40 bytes
Total savings is harder to account for but more than the above case.