Interface HeapSize

All Known Subinterfaces:
Cacheable, Cell, ExtendedCell, FirstLevelBlockCache, HFileIndexBlockEncoder.EncodedSeeker, RawCell, RegionSize, RegionSizeStore, SizedExtendedCellScanner
All Known Implementing Classes:
Append, BlockCacheKey, BucketCache, BufferedDataBlockEncoder.OffheapDecodedExtendedCell, BufferedDataBlockEncoder.OnheapDecodedCell, ByteBufferChunkKeyValue, ByteBufferExtendedCell, ByteBufferKeyOnlyKeyValue, ByteBufferKeyValue, CombinedBlockCache, Delete, EntryBuffers.RegionEntryBuffer, ExclusiveMemHFileBlock, HFileBlock, HFileBlockIndex.BlockIndexReader, HFileBlockIndex.ByteArrayKeyBlockIndexReader, HFileBlockIndex.CellBasedKeyBlockIndexReader, HFileBlockIndex.CellBasedKeyBlockIndexReaderV2, HFileContext, HMobStore, HRegion, HStore, InclusiveCombinedBlockCache, Increment, IndexOnlyLruBlockCache, IndividualBytesFieldCell, KeyOnlyFilter.KeyOnlyByteBufferExtendedCell, KeyOnlyFilter.KeyOnlyCell, KeyValue, KeyValue.KeyOnlyKeyValue, LruAdaptiveBlockCache, LruBlockCache, LruCachedBlock, LruCachedBlockQueue, MapReduceExtendedCell, Mutation, NoOpIndexBlockEncoder.NoOpEncodedSeeker, NoOpRegionSizeStore, NoTagByteBufferChunkKeyValue, NoTagsByteBufferKeyValue, NoTagsKeyValue, PrivateCellUtil.EmptyByteBufferExtendedCell, PrivateCellUtil.EmptyCell, PrivateCellUtil.FirstOnRowByteBufferExtendedCell, PrivateCellUtil.FirstOnRowCell, PrivateCellUtil.FirstOnRowColByteBufferExtendedCell, PrivateCellUtil.FirstOnRowColCell, PrivateCellUtil.FirstOnRowColTSByteBufferExtendedCell, PrivateCellUtil.FirstOnRowColTSCell, PrivateCellUtil.FirstOnRowDeleteFamilyCell, PrivateCellUtil.LastOnRowByteBufferExtendedCell, PrivateCellUtil.LastOnRowCell, PrivateCellUtil.LastOnRowColByteBufferExtendedCell, PrivateCellUtil.LastOnRowColCell, PrivateCellUtil.TagRewriteByteBufferExtendedCell, PrivateCellUtil.TagRewriteCell, PrivateCellUtil.ValueAndTagRewriteByteBufferExtendedCell, PrivateCellUtil.ValueAndTagRewriteCell, Put, RegionSizeImpl, RegionSizeStoreImpl, SharedMemHFileBlock, SizeCachedByteBufferKeyValue, SizeCachedKeyValue, SizeCachedNoTagsByteBufferKeyValue, SizeCachedNoTagsKeyValue, StoreContext, TinyLfuBlockCache, WALEdit

@Private public interface HeapSize
Implementations can be asked for an estimate of their size in bytes.

Useful for sizing caches. Its a given that implementation approximations do not account for 32 vs 64 bit nor for different VM implementations.

An Object's size is determined by the non-static data members in it, as well as the fixed Object overhead.

For example:

 public class SampleObject implements HeapSize {

   int[] numbers;
   int x;
 }
 
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    Return the approximate 'exclusive deep size' of implementing object.
  • Method Details

    • heapSize

      long heapSize()
      Return the approximate 'exclusive deep size' of implementing object. Includes count of payload and hosting object sizings.