blob: a699a8a92d1917be0243c3cb720b1fa99fffaaea [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ClassSize (Apache HBase 4.0.0-alpha-1-SNAPSHOT API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.hadoop.hbase.util, class: ClassSize">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ClassSize.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.hadoop.hbase.util</a></div>
<h1 title="Class ClassSize" class="title">Class ClassSize</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.hadoop.hbase.util.ClassSize</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="annotations">@Private
</span><span class="modifiers">public class </span><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-33">ClassSize</a></span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">Class for determining the "size" of a class, an attempt to calculate the actual bytes that an
object of this class will occupy in memory The core of this class is taken from the Derby project</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="ClassSize.MemoryLayout.html" class="type-name-link" title="class in org.apache.hadoop.hbase.util">ClassSize.MemoryLayout</a></code></div>
<div class="col-last even-row-color">
<div class="block">MemoryLayout abstracts details about the JVM object layout.</div>
</div>
<div class="col-first odd-row-color"><code>private static class&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="ClassSize.UnsafeLayout.html" class="type-name-link" title="class in org.apache.hadoop.hbase.util">ClassSize.UnsafeLayout</a></code></div>
<div class="col-last odd-row-color">
<div class="block">UnsafeLayout uses Unsafe to guesstimate the object-layout related parameters like object header
sizes and oop sizes See HBASE-15950.</div>
</div>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#ARRAY" class="member-name-link">ARRAY</a></code></div>
<div class="col-last even-row-color">
<div class="block">Array overhead</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#ARRAYLIST" class="member-name-link">ARRAYLIST</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for ArrayList(0)</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#ATOMIC_BOOLEAN" class="member-name-link">ATOMIC_BOOLEAN</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for AtomicBoolean</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#ATOMIC_INTEGER" class="member-name-link">ATOMIC_INTEGER</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for AtomicInteger</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#ATOMIC_LONG" class="member-name-link">ATOMIC_LONG</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for AtomicLong</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#ATOMIC_REFERENCE" class="member-name-link">ATOMIC_REFERENCE</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for AtomicReference</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#BYTE_BUFFER" class="member-name-link">BYTE_BUFFER</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for ByteBuffer</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#CELL_ARRAY_MAP" class="member-name-link">CELL_ARRAY_MAP</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for CellArrayMap</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#CELL_ARRAY_MAP_ENTRY" class="member-name-link">CELL_ARRAY_MAP_ENTRY</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for Cell Array Entry</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#CELL_CHUNK_MAP" class="member-name-link">CELL_CHUNK_MAP</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for CellChunkMap</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#CELL_CHUNK_MAP_ENTRY" class="member-name-link">CELL_CHUNK_MAP_ENTRY</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for Cell Chunk Map Entry</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#CELL_FLAT_MAP" class="member-name-link">CELL_FLAT_MAP</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for CellFlatMap</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#CELL_SET" class="member-name-link">CELL_SET</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for CellSkipListSet</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#CONCURRENT_HASHMAP" class="member-name-link">CONCURRENT_HASHMAP</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for ConcurrentHashMap</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#CONCURRENT_HASHMAP_ENTRY" class="member-name-link">CONCURRENT_HASHMAP_ENTRY</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for ConcurrentHashMap.Entry</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#CONCURRENT_HASHMAP_SEGMENT" class="member-name-link">CONCURRENT_HASHMAP_SEGMENT</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for ConcurrentHashMap.Segment</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#CONCURRENT_SKIPLISTMAP" class="member-name-link">CONCURRENT_SKIPLISTMAP</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for ConcurrentSkipListMap</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#CONCURRENT_SKIPLISTMAP_ENTRY" class="member-name-link">CONCURRENT_SKIPLISTMAP_ENTRY</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for ConcurrentSkipListMap Entry</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#COPYONWRITE_ARRAYLIST" class="member-name-link">COPYONWRITE_ARRAYLIST</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for CopyOnWriteArrayList</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#COPYONWRITE_ARRAYSET" class="member-name-link">COPYONWRITE_ARRAYSET</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for CopyOnWriteArraySet</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#INTEGER" class="member-name-link">INTEGER</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for an Integer</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#LINKEDLIST" class="member-name-link">LINKEDLIST</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for LinkedList(0)</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#LINKEDLIST_ENTRY" class="member-name-link">LINKEDLIST_ENTRY</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for a single entry in LinkedList</div>
</div>
<div class="col-first odd-row-color"><code>private static final org.slf4j.Logger</code></div>
<div class="col-second odd-row-color"><code><a href="#LOG" class="member-name-link">LOG</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#MAP_ENTRY" class="member-name-link">MAP_ENTRY</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for entry in map</div>
</div>
<div class="col-first odd-row-color"><code>private static final <a href="ClassSize.MemoryLayout.html" title="class in org.apache.hadoop.hbase.util">ClassSize.MemoryLayout</a></code></div>
<div class="col-second odd-row-color"><code><a href="#memoryLayout" class="member-name-link">memoryLayout</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#NON_SYNC_TIMERANGE_TRACKER" class="member-name-link">NON_SYNC_TIMERANGE_TRACKER</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for NonSyncTimeRangeTracker</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#OBJECT" class="member-name-link">OBJECT</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Object overhead is minimum 2 * reference size (8 bytes on 64-bit)</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#REENTRANT_LOCK" class="member-name-link">REENTRANT_LOCK</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for ReentrantReadWriteLock</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#REFERENCE" class="member-name-link">REFERENCE</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Reference size is 8 bytes on 64-bit, 4 bytes on 32-bit</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#STORE_SERVICES" class="member-name-link">STORE_SERVICES</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#STRING" class="member-name-link">STRING</a></code></div>
<div class="col-last odd-row-color">
<div class="block">String overhead</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#SYNC_TIMERANGE_TRACKER" class="member-name-link">SYNC_TIMERANGE_TRACKER</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for SyncTimeRangeTracker</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#TIMERANGE" class="member-name-link">TIMERANGE</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Overhead for timerange</div>
</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#TREEMAP" class="member-name-link">TREEMAP</a></code></div>
<div class="col-last even-row-color">
<div class="block">Overhead for TreeMap</div>
</div>
<div class="col-first odd-row-color"><code>private static final boolean</code></div>
<div class="col-second odd-row-color"><code><a href="#USE_UNSAFE_LAYOUT" class="member-name-link">USE_UNSAFE_LAYOUT</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">ClassSize</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#align(int)" class="member-name-link">align</a><wbr>(int&nbsp;num)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Aligns a number to 8.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#align(long)" class="member-name-link">align</a><wbr>(long&nbsp;num)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Aligns a number to 8.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static long</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#estimateBase(java.lang.Class,boolean)" class="member-name-link">estimateBase</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&nbsp;cl,
boolean&nbsp;debug)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Estimate the static space taken up by the fields of a class.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#estimateBaseFromCoefficients(int%5B%5D,boolean)" class="member-name-link">estimateBaseFromCoefficients</a><wbr>(int[]&nbsp;coeff,
boolean&nbsp;debug)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Estimate the static space taken up by a class instance given the coefficients returned by
getSizeCoefficients.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static <a href="ClassSize.MemoryLayout.html" title="class in org.apache.hadoop.hbase.util">ClassSize.MemoryLayout</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getMemoryLayout()" class="member-name-link">getMemoryLayout</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static int[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getSizeCoefficients(java.lang.Class,boolean)" class="member-name-link">getSizeCoefficients</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&nbsp;cl,
boolean&nbsp;debug)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">The estimate of the size of a class instance depends on whether the JVM uses 32 or 64 bit
addresses, that is it depends on the size of an object reference.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#is32BitJVM()" class="member-name-link">is32BitJVM</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Determines if we are running in a 32-bit JVM.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#sizeOf(byte%5B%5D)" class="member-name-link">sizeOf</a><wbr>(byte[]&nbsp;b)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Calculate the memory consumption (in byte) of a byte array, including the array header and the
whole backing byte array.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static long</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#sizeOfByteArray(int)" class="member-name-link">sizeOfByteArray</a><wbr>(int&nbsp;len)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Calculate the memory consumption (in byte) of a part of a byte array, including the array
header and the part of the backing byte array.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#useUnsafeLayout()" class="member-name-link">useUnsafeLayout</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="LOG">
<h3>LOG</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-35">LOG</a></span></div>
</section>
</li>
<li>
<section class="detail" id="ARRAY">
<h3>ARRAY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-38">ARRAY</a></span></div>
<div class="block">Array overhead</div>
</section>
</li>
<li>
<section class="detail" id="ARRAYLIST">
<h3>ARRAYLIST</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-41">ARRAYLIST</a></span></div>
<div class="block">Overhead for ArrayList(0)</div>
</section>
</li>
<li>
<section class="detail" id="LINKEDLIST">
<h3>LINKEDLIST</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-44">LINKEDLIST</a></span></div>
<div class="block">Overhead for LinkedList(0)</div>
</section>
</li>
<li>
<section class="detail" id="LINKEDLIST_ENTRY">
<h3>LINKEDLIST_ENTRY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-47">LINKEDLIST_ENTRY</a></span></div>
<div class="block">Overhead for a single entry in LinkedList</div>
</section>
</li>
<li>
<section class="detail" id="BYTE_BUFFER">
<h3>BYTE_BUFFER</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-50">BYTE_BUFFER</a></span></div>
<div class="block">Overhead for ByteBuffer</div>
</section>
</li>
<li>
<section class="detail" id="INTEGER">
<h3>INTEGER</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-53">INTEGER</a></span></div>
<div class="block">Overhead for an Integer</div>
</section>
</li>
<li>
<section class="detail" id="MAP_ENTRY">
<h3>MAP_ENTRY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-56">MAP_ENTRY</a></span></div>
<div class="block">Overhead for entry in map</div>
</section>
</li>
<li>
<section class="detail" id="OBJECT">
<h3>OBJECT</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-59">OBJECT</a></span></div>
<div class="block">Object overhead is minimum 2 * reference size (8 bytes on 64-bit)</div>
</section>
</li>
<li>
<section class="detail" id="REFERENCE">
<h3>REFERENCE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-62">REFERENCE</a></span></div>
<div class="block">Reference size is 8 bytes on 64-bit, 4 bytes on 32-bit</div>
</section>
</li>
<li>
<section class="detail" id="STRING">
<h3>STRING</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-65">STRING</a></span></div>
<div class="block">String overhead</div>
</section>
</li>
<li>
<section class="detail" id="TREEMAP">
<h3>TREEMAP</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-68">TREEMAP</a></span></div>
<div class="block">Overhead for TreeMap</div>
</section>
</li>
<li>
<section class="detail" id="CONCURRENT_HASHMAP">
<h3>CONCURRENT_HASHMAP</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-71">CONCURRENT_HASHMAP</a></span></div>
<div class="block">Overhead for ConcurrentHashMap</div>
</section>
</li>
<li>
<section class="detail" id="CONCURRENT_HASHMAP_ENTRY">
<h3>CONCURRENT_HASHMAP_ENTRY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-74">CONCURRENT_HASHMAP_ENTRY</a></span></div>
<div class="block">Overhead for ConcurrentHashMap.Entry</div>
</section>
</li>
<li>
<section class="detail" id="CONCURRENT_HASHMAP_SEGMENT">
<h3>CONCURRENT_HASHMAP_SEGMENT</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-77">CONCURRENT_HASHMAP_SEGMENT</a></span></div>
<div class="block">Overhead for ConcurrentHashMap.Segment</div>
</section>
</li>
<li>
<section class="detail" id="CONCURRENT_SKIPLISTMAP">
<h3>CONCURRENT_SKIPLISTMAP</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-80">CONCURRENT_SKIPLISTMAP</a></span></div>
<div class="block">Overhead for ConcurrentSkipListMap</div>
</section>
</li>
<li>
<section class="detail" id="CONCURRENT_SKIPLISTMAP_ENTRY">
<h3>CONCURRENT_SKIPLISTMAP_ENTRY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-83">CONCURRENT_SKIPLISTMAP_ENTRY</a></span></div>
<div class="block">Overhead for ConcurrentSkipListMap Entry</div>
</section>
</li>
<li>
<section class="detail" id="CELL_FLAT_MAP">
<h3>CELL_FLAT_MAP</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-86">CELL_FLAT_MAP</a></span></div>
<div class="block">Overhead for CellFlatMap</div>
</section>
</li>
<li>
<section class="detail" id="CELL_CHUNK_MAP">
<h3>CELL_CHUNK_MAP</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-89">CELL_CHUNK_MAP</a></span></div>
<div class="block">Overhead for CellChunkMap</div>
</section>
</li>
<li>
<section class="detail" id="CELL_CHUNK_MAP_ENTRY">
<h3>CELL_CHUNK_MAP_ENTRY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-92">CELL_CHUNK_MAP_ENTRY</a></span></div>
<div class="block">Overhead for Cell Chunk Map Entry</div>
</section>
</li>
<li>
<section class="detail" id="CELL_ARRAY_MAP">
<h3>CELL_ARRAY_MAP</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-95">CELL_ARRAY_MAP</a></span></div>
<div class="block">Overhead for CellArrayMap</div>
</section>
</li>
<li>
<section class="detail" id="CELL_ARRAY_MAP_ENTRY">
<h3>CELL_ARRAY_MAP_ENTRY</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-98">CELL_ARRAY_MAP_ENTRY</a></span></div>
<div class="block">Overhead for Cell Array Entry</div>
</section>
</li>
<li>
<section class="detail" id="REENTRANT_LOCK">
<h3>REENTRANT_LOCK</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-101">REENTRANT_LOCK</a></span></div>
<div class="block">Overhead for ReentrantReadWriteLock</div>
</section>
</li>
<li>
<section class="detail" id="ATOMIC_LONG">
<h3>ATOMIC_LONG</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-104">ATOMIC_LONG</a></span></div>
<div class="block">Overhead for AtomicLong</div>
</section>
</li>
<li>
<section class="detail" id="ATOMIC_INTEGER">
<h3>ATOMIC_INTEGER</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-107">ATOMIC_INTEGER</a></span></div>
<div class="block">Overhead for AtomicInteger</div>
</section>
</li>
<li>
<section class="detail" id="ATOMIC_BOOLEAN">
<h3>ATOMIC_BOOLEAN</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-110">ATOMIC_BOOLEAN</a></span></div>
<div class="block">Overhead for AtomicBoolean</div>
</section>
</li>
<li>
<section class="detail" id="ATOMIC_REFERENCE">
<h3>ATOMIC_REFERENCE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-113">ATOMIC_REFERENCE</a></span></div>
<div class="block">Overhead for AtomicReference</div>
</section>
</li>
<li>
<section class="detail" id="COPYONWRITE_ARRAYSET">
<h3>COPYONWRITE_ARRAYSET</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-116">COPYONWRITE_ARRAYSET</a></span></div>
<div class="block">Overhead for CopyOnWriteArraySet</div>
</section>
</li>
<li>
<section class="detail" id="COPYONWRITE_ARRAYLIST">
<h3>COPYONWRITE_ARRAYLIST</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-119">COPYONWRITE_ARRAYLIST</a></span></div>
<div class="block">Overhead for CopyOnWriteArrayList</div>
</section>
</li>
<li>
<section class="detail" id="TIMERANGE">
<h3>TIMERANGE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-122">TIMERANGE</a></span></div>
<div class="block">Overhead for timerange</div>
</section>
</li>
<li>
<section class="detail" id="SYNC_TIMERANGE_TRACKER">
<h3>SYNC_TIMERANGE_TRACKER</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-125">SYNC_TIMERANGE_TRACKER</a></span></div>
<div class="block">Overhead for SyncTimeRangeTracker</div>
</section>
</li>
<li>
<section class="detail" id="NON_SYNC_TIMERANGE_TRACKER">
<h3>NON_SYNC_TIMERANGE_TRACKER</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-128">NON_SYNC_TIMERANGE_TRACKER</a></span></div>
<div class="block">Overhead for NonSyncTimeRangeTracker</div>
</section>
</li>
<li>
<section class="detail" id="CELL_SET">
<h3>CELL_SET</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-131">CELL_SET</a></span></div>
<div class="block">Overhead for CellSkipListSet</div>
</section>
</li>
<li>
<section class="detail" id="STORE_SERVICES">
<h3>STORE_SERVICES</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-133">STORE_SERVICES</a></span></div>
</section>
</li>
<li>
<section class="detail" id="memoryLayout">
<h3>memoryLayout</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type"><a href="ClassSize.MemoryLayout.html" title="class in org.apache.hadoop.hbase.util">ClassSize.MemoryLayout</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-235">memoryLayout</a></span></div>
</section>
</li>
<li>
<section class="detail" id="USE_UNSAFE_LAYOUT">
<h3>USE_UNSAFE_LAYOUT</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-236">USE_UNSAFE_LAYOUT</a></span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>ClassSize</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-34">ClassSize</a></span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getMemoryLayout()">
<h3>getMemoryLayout</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type"><a href="ClassSize.MemoryLayout.html" title="class in org.apache.hadoop.hbase.util">ClassSize.MemoryLayout</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-220">getMemoryLayout</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="useUnsafeLayout()">
<h3>useUnsafeLayout</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-238">useUnsafeLayout</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="getSizeCoefficients(java.lang.Class,boolean)">
<h3>getSizeCoefficients</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type">int[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-349">getSizeCoefficients</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&nbsp;cl,
boolean&nbsp;debug)</span></div>
<div class="block">The estimate of the size of a class instance depends on whether the JVM uses 32 or 64 bit
addresses, that is it depends on the size of an object reference. It is a linear function of
the size of a reference, e.g. 24 + 5*r where r is the size of a reference (usually 4 or 8
bytes). This method returns the coefficients of the linear function, e.g. {24, 5} in the above
example.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>cl</code> - A class whose instance size is to be estimated</dd>
<dd><code>debug</code> - debug flag</dd>
<dt>Returns:</dt>
<dd>an array of 3 integers. The first integer is the size of the primitives, the second the
number of arrays and the third the number of references.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="estimateBaseFromCoefficients(int[],boolean)">
<h3>estimateBaseFromCoefficients</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-398">estimateBaseFromCoefficients</a></span><wbr><span class="parameters">(int[]&nbsp;coeff,
boolean&nbsp;debug)</span></div>
<div class="block">Estimate the static space taken up by a class instance given the coefficients returned by
getSizeCoefficients.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>coeff</code> - the coefficients</dd>
<dd><code>debug</code> - debug flag</dd>
<dt>Returns:</dt>
<dd>the size estimate, in bytes</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="estimateBase(java.lang.Class,boolean)">
<h3>estimateBase</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-421">estimateBase</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&nbsp;cl,
boolean&nbsp;debug)</span></div>
<div class="block">Estimate the static space taken up by the fields of a class. This includes the space taken up
by by references (the pointer) but not by the referenced object. So the estimated size of an
array field does not depend on the size of the array. Similarly the size of an object
(reference) field does not depend on the object.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>cl</code> - class</dd>
<dd><code>debug</code> - debug flag</dd>
<dt>Returns:</dt>
<dd>the size estimate in bytes.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="align(int)">
<h3>align</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-431">align</a></span><wbr><span class="parameters">(int&nbsp;num)</span></div>
<div class="block">Aligns a number to 8.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>num</code> - number to align to 8</dd>
<dt>Returns:</dt>
<dd>smallest number &gt;= input that is a multiple of 8</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="align(long)">
<h3>align</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-440">align</a></span><wbr><span class="parameters">(long&nbsp;num)</span></div>
<div class="block">Aligns a number to 8.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>num</code> - number to align to 8</dd>
<dt>Returns:</dt>
<dd>smallest number &gt;= input that is a multiple of 8</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="is32BitJVM()">
<h3>is32BitJVM</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-447">is32BitJVM</a></span>()</div>
<div class="block">Determines if we are running in a 32-bit JVM. Some unit tests need to know this too.</div>
</section>
</li>
<li>
<section class="detail" id="sizeOf(byte[])">
<h3>sizeOf</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-459">sizeOf</a></span><wbr><span class="parameters">(byte[]&nbsp;b)</span></div>
<div class="block">Calculate the memory consumption (in byte) of a byte array, including the array header and the
whole backing byte array. If the whole byte array is occupied (not shared with other objects),
please use this function. If not, please use <a href="#sizeOfByteArray(int)"><code>sizeOfByteArray(int)</code></a> instead.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>b</code> - the byte array</dd>
<dt>Returns:</dt>
<dd>the memory consumption (in byte) of the whole byte array</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="sizeOfByteArray(int)">
<h3>sizeOfByteArray</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ClassSize.html#line-472">sizeOfByteArray</a></span><wbr><span class="parameters">(int&nbsp;len)</span></div>
<div class="block">Calculate the memory consumption (in byte) of a part of a byte array, including the array
header and the part of the backing byte array. This function is used when the byte array backs
multiple objects. For example, in <a href="../KeyValue.html" title="class in org.apache.hadoop.hbase"><code>KeyValue</code></a>, multiple KeyValue
objects share a same backing byte array (<a href="../KeyValue.html#bytes"><code>KeyValue.bytes</code></a>). Also
see <a href="../KeyValue.html#heapSize()"><code>KeyValue.heapSize()</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>len</code> - the length (in byte) used partially in the backing byte array</dd>
<dt>Returns:</dt>
<dd>the memory consumption (in byte) of the part of the byte array</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2007&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>