Object Memory Calculator
Estimate the memory footprint of objects including headers, fields and alignment padding.
About Object Memory Calculator
Every object carries a runtime header and is padded to an alignment boundary, so small objects waste proportionally more memory. Millions of small objects can spend more memory on headers than on data. This overhead is why struct-of-arrays layouts outperform arrays-of-objects for large datasets, both in memory and in cache behaviour.
Formula
Object Memory
Bytes per object = ⌈(header + fields) ÷ alignment⌉ × alignment
- object header
- Runtime metadata such as type and lock information
- alignment padding
- Wasted bytes rounding each object up to a boundary
Worked example
With the default values below, Object Memory Calculator returns Total Memory of 38.1470. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Number of objectsminimum 0
- 500,000
- Fields per objectminimum 0
- 8
- Average bytes per fieldminimum 0 bytes
- 8 bytes
- Object header sizeminimum 0 bytes
- 16 bytes
- Alignment boundaryaccepts 1–64 bytes
- 8 bytes
Results
- Total Memory
- 38.1470 MB
- Bytes per Object
- 80 bytes
- Padding per Object
- 0 bytes
- Memory Consumed by Headers
- 7.6294 MB
- Share That Is Not Field Data
- 20.000%
Step by step
- 1Values used
- 2Object Memory
- 3Total Memory= 38.1470 MB
- 4Bytes per Object= 80 bytes
- 5Padding per Object= 0 bytes
- 6Memory Consumed by Headers= 7.6294 MB
- 7Share That Is Not Field Data= 20.000
Assumptions and limits
- The result is derived only from the 5 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, tax, fees or charges or compounding frequency into account.
- Figures are rounded for display to 4 decimal places, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
Frequently Asked Questions
How is Object Memory calculated?
Bytes per object = ⌈(header + fields) ÷ alignment⌉ × alignment Every object carries a runtime header and is padded to an alignment boundary, so small objects waste proportionally more memory. Millions of small objects can spend more memory on headers than on data.
Why does Object Memory matter?
This overhead is why struct-of-arrays layouts outperform arrays-of-objects for large datasets, both in memory and in cache behaviour.
What values do I need to enter?
This calculator takes 5 inputs: Number of objects, Fields per object, Average bytes per field, Object header size, Alignment boundary. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
