blob: d70904ee9d22314259f11d956e9eed8bfca5a94a [file]
<!doctype html><html lang=en-US dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-1.1.0 docs-doc-page docs-doc-id-benchmarks/java/README" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.1"><title data-rh=true>Java Benchmarks | Apache Fory™</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true property=og:url content=https://fory.apache.org/docs/1.1.0/benchmarks/java/ /><meta data-rh=true property=og:locale content=en_US /><meta data-rh=true property=og:locale:alternate content=zh_CN /><meta data-rh=true name=docusaurus_locale content=en-US /><meta data-rh=true name=docsearch:language content=en-US /><meta data-rh=true http-equiv=Content-Security-Policy content="frame-src 'self' https://ghbtns.com/;"/><meta data-rh=true property=og:image content=https://fory.apache.org/img/logo.png /><meta data-rh=true property=og:image:width content=1500 /><meta data-rh=true property=og:image:height content=1500 /><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true name=twitter:image content=https://fory.apache.org/img/logo.png /><meta data-rh=true name=docusaurus_version content=1.1.0 /><meta data-rh=true name=docusaurus_tag content=docs-default-1.1.0 /><meta data-rh=true name=docsearch:version content=1.1.0 /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-1.1.0 /><meta data-rh=true property=og:title content="Java Benchmarks | Apache Fory™"/><meta data-rh=true name=description content="System Environment"/><meta data-rh=true property=og:description content="System Environment"/><link data-rh=true rel=icon href=/img/favicon.ico /><link data-rh=true rel=canonical href=https://fory.apache.org/docs/1.1.0/benchmarks/java/ /><link data-rh=true rel=alternate href=https://fory.apache.org/docs/1.1.0/benchmarks/java/ hreflang=en-US /><link data-rh=true rel=alternate href=https://fory.apache.org/zh-CN/docs/1.1.0/benchmarks/java/ hreflang=zh-CN /><link data-rh=true rel=alternate href=https://fory.apache.org/docs/1.1.0/benchmarks/java/ hreflang=x-default /><link rel=alternate type=application/rss+xml href=/blog/rss.xml title="Apache Fory™ RSS Feed"><link rel=alternate type=application/atom+xml href=/blog/atom.xml title="Apache Fory™ Atom Feed"><script type=text/javascript>"fury.apache.org"===window.location.host&&(window.location.href="https://fory.apache.org"),function(){for(var o=window.location.pathname,a=["guide","introduction","start"],n=0;n<a.length;n++){var t=a[n],i=RegExp("^((?:/[a-z]{2}-[A-Z]{2})?/docs(?:/(?:next|[0-9]+.[0-9]+))?)/docs/"+t+"(/.*)?$"),c=o.match(i);if(c){var r=c[1]+"/"+t+(c[2]||"");window.location.replace(r+window.location.search+window.location.hash);return}}}()</script><link rel=stylesheet href=/assets/css/styles.3a1edaa1.css /><script src=/assets/js/runtime~main.605b11b1.js defer></script><script src=/assets/js/main.283fea4b.js defer></script></head><body><svg style="display: none;"><defs>
<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/><div class=navbar__logo><img src=/img/fory-logo-light.png alt="Apache Fory™ Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"/><img src=/img/fory-logo-dark.png alt="Apache Fory™ Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"/></div><b class="navbar__title text--truncate"></b></a><a class="navbar__item navbar__link" href=/docs/1.1.0/introduction/overview>Docs</a><a class="navbar__item navbar__link" href=/docs/1.1.0/specification/xlang_serialization_spec>Specification</a><a class="navbar__item navbar__link" href=/docs/1.1.0/community/>Community</a><a class="navbar__item navbar__link" href=/user>Users</a><a class="navbar__item navbar__link" href=/download>Download</a><a class="navbar__item navbar__link" href=/blog>Blog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>ASF</a><ul class=dropdown__menu><li><a href=https://www.apache.org/ target=_blank rel="noopener noreferrer" class=dropdown__link>Foundation</a><li><a href=https://www.apache.org/licenses/ target=_blank rel="noopener noreferrer" class=dropdown__link>License</a><li><a href=https://www.apache.org/events/current-event.html target=_blank rel="noopener noreferrer" class=dropdown__link>Events</a><li><a href=https://privacy.apache.org/policies/privacy-policy-public.html target=_blank rel="noopener noreferrer" class=dropdown__link>Privacy</a><li><a href=https://www.apache.org/security/ target=_blank rel="noopener noreferrer" class=dropdown__link>Security</a><li><a href=https://www.apache.org/foundation/sponsorship.html target=_blank rel="noopener noreferrer" class=dropdown__link>Sponsorship</a><li><a href=https://www.apache.org/foundation/thanks.html target=_blank rel="noopener noreferrer" class=dropdown__link>Thanks</a><li><a href=https://www.apache.org/foundation/policies/conduct.html target=_blank rel="noopener noreferrer" class=dropdown__link>Code of Conduct</a></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class=navbar__link aria-haspopup=true aria-expanded=false role=button href=/docs/1.1.0/benchmarks/java/>1.1.0</a><ul class=dropdown__menu><li><a class=dropdown__link href=/docs/next/benchmarks/java/>dev</a><li><a class=dropdown__link href=/docs/benchmarks/java/>1.3.0</a><li><a class=dropdown__link href=/docs/1.2.0/benchmarks/java/>1.2.0</a><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/docs/1.1.0/benchmarks/java/>1.1.0</a><li><a class=dropdown__link href=/docs/1.0.0/benchmarks/java/>1.0.0</a><li><a class=dropdown__link href=/docs/0.17/benchmarks/java/>0.17</a><li><a class=dropdown__link href=/docs/0.16/benchmarks/java/>0.16</a><li><a class=dropdown__link href=/docs/0.15/benchmarks/java/>0.15</a><li><a class=dropdown__link href=/docs/0.14/introduction/overview>0.14</a><li><a class=dropdown__link href=/docs/0.13/introduction/overview>0.13</a><li><a class=dropdown__link href=/docs/0.12/introduction/overview>0.12</a><li><a class=dropdown__link href=/docs/0.11/introduction/overview>0.11</a><li><a class=dropdown__link href=/docs/0.10/introduction/overview>0.10</a></ul></div><a href=https://github.com/apache/fory target=_blank rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link><svg viewBox="0 0 24 24" width=20 height=20 aria-hidden=true class=iconLanguage_nlXk><path fill=currentColor d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"/></svg>English</a><ul class=dropdown__menu><li><a href=/docs/1.1.0/benchmarks/java/ target=_self rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang=en-US>English</a><li><a href=/zh-CN/docs/1.1.0/benchmarks/java/ target=_self rel="noopener noreferrer" class=dropdown__link lang=zh-CN>简体中文</a></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled/></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><main class="docMainContainer_TBSr docMainContainerEnhanced_lQrH"><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class="theme-doc-version-banner alert alert--warning margin-bottom--md" role=alert><div>This is documentation for <!-- -->Apache Fory™<!-- --> <b>1.1.0</b>, which is no longer actively maintained.</div><div class=margin-top--md>For up-to-date documentation, see the <b><a href=/docs/benchmarks/java/>latest version</a></b> (<!-- -->1.3.0<!-- -->).</div></div><div class=docItemContainer_Djhp><article><span class="theme-doc-version-badge badge badge--secondary">Version: 1.1.0</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Java Benchmarks</h1></header>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=system-environment>System Environment<a href=#system-environment class=hash-link aria-label="Direct link to System Environment" title="Direct link to System Environment" translate=no></a></h2>
<ul>
<li class="">Operation System:4.9.151-015.x86_64</li>
<li class="">CPU:Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz</li>
<li class="">Byte Order:Little Endian</li>
<li class="">L1d cache: 32K</li>
<li class="">L1i cache:32K</li>
<li class="">L2 cache: 1024K</li>
<li class="">L3 cache: 33792K</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=jmh-params>JMH params<a href=#jmh-params class=hash-link aria-label="Direct link to JMH params" title="Direct link to JMH params" translate=no></a></h2>
<p>Don't skip <strong>warm up</strong>, otherwise the results aren't accurate.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-f</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>1</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-wi</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>3</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-i</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>3</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-t</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>1</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-w</span><span class="token plain"> 2s </span><span class="token parameter variable" style=color:#36acaa>-r</span><span class="token plain"> 2s </span><span class="token parameter variable" style=color:#36acaa>-rf</span><span class="token plain"> cs</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=benchmark-data>Benchmark Data<a href=#benchmark-data class=hash-link aria-label="Direct link to Benchmark Data" title="Direct link to Benchmark Data" translate=no></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=struct>Struct<a href=#struct class=hash-link aria-label="Direct link to Struct" title="Direct link to Struct" translate=no></a></h3>
<p>Struct is a class with 100 primitive fields:</p>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-java codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>class</span><span class="token plain"> </span><span class="token class-name">Struct</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>{</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>int</span><span class="token plain"> f1</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>long</span><span class="token plain"> f2</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>float</span><span class="token plain"> f3</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>double</span><span class="token plain"> f4</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic>// ...</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>double</span><span class="token plain"> f99</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>}</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=struct2>Struct2<a href=#struct2 class=hash-link aria-label="Direct link to Struct2" title="Direct link to Struct2" translate=no></a></h3>
<p>Struct2 is a class with 100 boxed fields:</p>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-java codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>class</span><span class="token plain"> </span><span class="token class-name">Struct</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>{</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token class-name">Integer</span><span class="token plain"> f1</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token class-name">Long</span><span class="token plain"> f2</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token class-name">Float</span><span class="token plain"> f3</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token class-name">Double</span><span class="token plain"> f4</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic>// ...</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>public</span><span class="token plain"> </span><span class="token class-name">Double</span><span class="token plain"> f99</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>}</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=mediacontent>MediaContent<a href=#mediacontent class=hash-link aria-label="Direct link to MediaContent" title="Direct link to MediaContent" translate=no></a></h3>
<p>MEDIA_CONTENT is a class from <a href=https://github.com/eishay/jvm-serializers/blob/master/tpc/src/data/media/MediaContent.java target=_blank rel="noopener noreferrer" class="">jvm-serializers</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=sample>Sample<a href=#sample class=hash-link aria-label="Direct link to Sample" title="Direct link to Sample" translate=no></a></h3>
<p>SAMPLE is a class from <a href=https://github.com/EsotericSoftware/kryo/blob/master/benchmarks/src/main/java/com/esotericsoftware/kryo/benchmarks/data/Sample.java target=_blank rel="noopener noreferrer" class="">kryo benchmark</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-benchmark>Java Benchmark<a href=#java-benchmark class=hash-link aria-label="Direct link to Java Benchmark" title="Direct link to Java Benchmark" translate=no></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=serialize-to-heap-buffer>Serialize to heap buffer<a href=#serialize-to-heap-buffer class=hash-link aria-label="Direct link to Serialize to heap buffer" title="Direct link to Serialize to heap buffer" translate=no></a></h3>
<p>Serialize data java byte array.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-schema-consistent-serialization>Java schema consistent serialization<a href=#java-schema-consistent-serialization class=hash-link aria-label="Direct link to Java schema consistent serialization" title="Direct link to Java schema consistent serialization" translate=no></a></h4>
<p>The deserialization peer must have same class definition with the serialization peer.
No class forward/backward compatibility are supported in this mode.</p>
<p><img decoding=async loading=lazy alt="Java Heap Schema Consistent Serialization" src=/assets/images/java_heap_serialize_consistent-fb96855401f25a003957144d0d7d7fe9.png width=3003 height=906 class=img_ev3q /></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-schema-compatible-serialization>Java schema compatible serialization<a href=#java-schema-compatible-serialization class=hash-link aria-label="Direct link to Java schema compatible serialization" title="Direct link to Java schema compatible serialization" translate=no></a></h4>
<p>The deserialization peer can have different class definition with the serialization peer.
Class forward/backward compatibility are supported in this mode.</p>
<p><img decoding=async loading=lazy alt="Java Heap Schema Compatible Serialization" src=/assets/images/java_heap_serialize_compatible-81952461100eb210d81edf0b36ec728a.png width=3003 height=906 class=img_ev3q /></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-schema-consistent-deserialization>Java schema consistent deserialization<a href=#java-schema-consistent-deserialization class=hash-link aria-label="Direct link to Java schema consistent deserialization" title="Direct link to Java schema consistent deserialization" translate=no></a></h4>
<p>The deserialization peer must have same class definition with the serialization peer.
No class forward/backward compatibility are supported in this mode.</p>
<p><img decoding=async loading=lazy alt="Java Heap Schema Consistent Deserialization" src=/assets/images/java_heap_deserialize_consistent-93940679e98f0d5bb28b166830591e6b.png width=3003 height=906 class=img_ev3q /></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-schema-compatible-deserialization>Java schema compatible deserialization<a href=#java-schema-compatible-deserialization class=hash-link aria-label="Direct link to Java schema compatible deserialization" title="Direct link to Java schema compatible deserialization" translate=no></a></h4>
<p>The deserialization peer can have different class definition with the serialization peer.
Class forward/backward compatibility are supported in this mode.</p>
<p><img decoding=async loading=lazy alt="Java Heap Schema Compatible Deserialization" src=/assets/images/java_heap_deserialize_compatible-b0f63e2cf90b547843692d1a6eec559b.png width=3003 height=906 class=img_ev3q /></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=off-heap-serialization>Off-heap serialization<a href=#off-heap-serialization class=hash-link aria-label="Direct link to Off-heap serialization" title="Direct link to Off-heap serialization" translate=no></a></h3>
<p>Serialize data off-heap memory.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-schema-consistent-serialization-1>Java schema consistent serialization<a href=#java-schema-consistent-serialization-1 class=hash-link aria-label="Direct link to Java schema consistent serialization" title="Direct link to Java schema consistent serialization" translate=no></a></h4>
<p>The deserialization peer must have same class definition with the serialization peer.
No class forward/backward compatibility are supported in this mode.</p>
<p><img decoding=async loading=lazy alt="Java Off Heap Schema Consistent Serialization" src=/assets/images/java_offheap_serialize_consistent-41c7ea7511f55c59eb49226a142ba369.png width=3018 height=906 class=img_ev3q /></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-schema-compatible-serialization-1>Java schema compatible serialization<a href=#java-schema-compatible-serialization-1 class=hash-link aria-label="Direct link to Java schema compatible serialization" title="Direct link to Java schema compatible serialization" translate=no></a></h4>
<p>The deserialization peer can have different class definition with the serialization peer.
Class forward/backward compatibility are supported in this mode.</p>
<p><img decoding=async loading=lazy alt="Java Off Heap Schema Compatible Serialization" src=/assets/images/java_offheap_serialize_compatible-0d3a90dd080050d6788961e12ce2f9c1.png width=3018 height=906 class=img_ev3q /></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-schema-consistent-deserialization-1>Java schema consistent deserialization<a href=#java-schema-consistent-deserialization-1 class=hash-link aria-label="Direct link to Java schema consistent deserialization" title="Direct link to Java schema consistent deserialization" translate=no></a></h4>
<p>The deserialization peer must have same class definition with the serialization peer.
No class forward/backward compatibility are supported in this mode.</p>
<p><img decoding=async loading=lazy alt="Java Off Heap Schema Consistent Deserialization" src=/assets/images/java_offheap_deserialize_consistent-84482a82279eda1cdb52cae6785f36f3.png width=3003 height=906 class=img_ev3q /></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-schema-compatible-deserialization-1>Java schema compatible deserialization<a href=#java-schema-compatible-deserialization-1 class=hash-link aria-label="Direct link to Java schema compatible deserialization" title="Direct link to Java schema compatible deserialization" translate=no></a></h4>
<p>The deserialization peer can have different class definition with the serialization peer.
Class forward/backward compatibility are supported in this mode.</p>
<p><img decoding=async loading=lazy alt="Java Off Heap Schema Compatible Deserialization" src=/assets/images/java_offheap_deserialize_compatible-ac169e32861a71d0b29d1334b02c333a.png width=3027 height=906 class=img_ev3q /></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=zero-copy-serialization>Zero-copy serialization<a href=#zero-copy-serialization class=hash-link aria-label="Direct link to Zero-copy serialization" title="Direct link to Zero-copy serialization" translate=no></a></h3>
<p>Note that zero-copy serialization just avoid the copy in serialization, if you send data to other machine, there may be copies.</p>
<p>But if you serialize data between processes on same node and use shared-memory, if the data are in off-heap before serialization, then other processes can read this buffer without any copies.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-zero-copy-serialize-to-heap-buffer>Java zero-copy serialize to heap buffer<a href=#java-zero-copy-serialize-to-heap-buffer class=hash-link aria-label="Direct link to Java zero-copy serialize to heap buffer" title="Direct link to Java zero-copy serialize to heap buffer" translate=no></a></h4>
<p><img decoding=async loading=lazy alt="Java Zero Copy Serialization" src=/assets/images/java_zero_copy_serialize-b05269035d1df4acf763ade016683d67.png width=3003 height=906 class=img_ev3q /></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-zero-copy-serialize-to-direct-buffer>Java zero-copy serialize to direct buffer<a href=#java-zero-copy-serialize-to-direct-buffer class=hash-link aria-label="Direct link to Java zero-copy serialize to direct buffer" title="Direct link to Java zero-copy serialize to direct buffer" translate=no></a></h4>
<p><img decoding=async loading=lazy alt="Java Zero Copy Deserialization" src=/assets/images/java_zero_copy_deserialize-f57b34d993d211a3186be3441b0d3023.png width=3008 height=906 class=img_ev3q /></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=benchmark-data-1>Benchmark Data<a href=#benchmark-data-1 class=hash-link aria-label="Direct link to Benchmark Data" title="Direct link to Benchmark Data" translate=no></a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-serialization>Java Serialization<a href=#java-serialization class=hash-link aria-label="Direct link to Java Serialization" title="Direct link to Java Serialization" translate=no></a></h4>
<table><thead><tr><th>Benchmark<th>objectType<th>bufferType<th>references<th>Fory<th>ForyMetaShared<th>Kryo<th>Fst<th>Hession<th>Jdk<th>Protostuff<tbody><tr><td>serialize<td>STRUCT<td>array<td>False<td>7501415.567260<td><td>558194.100861<td>882178.995727<td>258233.998931<td>155908.244240<td>330975.350403<tr><td>serialize<td>STRUCT<td>array<td>True<td>6264439.154428<td><td>557542.628765<td>757753.756691<td>260845.209485<td>151258.539369<td><tr><td>serialize<td>STRUCT<td>directBuffer<td>False<td>9834223.243204<td><td>1078046.011115<td>807847.663261<td>266481.009225<td>154875.908438<td>340262.650047<tr><td>serialize<td>STRUCT<td>directBuffer<td>True<td>7551780.823133<td><td>853350.408656<td>762088.935404<td>261762.594966<td>156404.686214<td><tr><td>serialize<td>STRUCT2<td>array<td>False<td>3586126.623874<td><td>325172.969175<td>371762.982661<td>56056.080075<td>36846.049162<td>322563.440433<tr><td>serialize<td>STRUCT2<td>array<td>True<td>3306474.506382<td><td>259863.332448<td>380638.700267<td>60038.879790<td>38183.705811<td><tr><td>serialize<td>STRUCT2<td>directBuffer<td>False<td>2643155.135327<td><td>355688.882786<td>365317.705376<td>55924.319442<td>37444.967981<td>325093.716261<tr><td>serialize<td>STRUCT2<td>directBuffer<td>True<td>2391110.083108<td><td>338960.426033<td>370851.880711<td>56674.065604<td>35798.679246<td><tr><td>serialize<td>MEDIA_CONTENT<td>array<td>False<td>3031642.924542<td><td>730792.521676<td>751892.023189<td>367782.358049<td>137989.198821<td>780618.761219<tr><td>serialize<td>MEDIA_CONTENT<td>array<td>True<td>2250384.600246<td><td>445251.084327<td>583859.907758<td>329427.470680<td>140260.668888<td><tr><td>serialize<td>MEDIA_CONTENT<td>directBuffer<td>False<td>2479862.129632<td><td>608972.517580<td>728001.080250<td>372477.138150<td>138567.623369<td>805941.345157<tr><td>serialize<td>MEDIA_CONTENT<td>directBuffer<td>True<td>1938527.588331<td><td>359875.473951<td>595679.580108<td>353376.085025<td>140158.673910<td><tr><td>serialize<td>SAMPLE<td>array<td>False<td>3570966.469087<td><td>1105365.931217<td>915907.574306<td>220386.502846<td>118374.836631<td>663272.710783<tr><td>serialize<td>SAMPLE<td>array<td>True<td>1767693.835090<td><td>734215.482291<td>731869.156376<td>192414.014211<td>119858.140625<td><tr><td>serialize<td>SAMPLE<td>directBuffer<td>False<td>3684487.760591<td><td>1376560.302168<td>902302.261168<td>220981.308085<td>118273.584257<td>693641.589806<tr><td>serialize<td>SAMPLE<td>directBuffer<td>True<td>1826456.709478<td><td>932887.968348<td>723614.066770<td>211949.960255<td>108263.040839<td><tr><td>serialize_compatible<td>STRUCT<td>array<td>False<td>3530406.108869<td>9204444.777172<td>145964.199559<td><td>258650.663523<td><td><tr><td>serialize_compatible<td>STRUCT<td>array<td>True<td>3293059.098127<td>7064625.291374<td>136180.832879<td><td>263564.913879<td><td><tr><td>serialize_compatible<td>STRUCT<td>directBuffer<td>False<td>2653169.568374<td>11650229.648715<td>106695.800225<td><td>249221.452137<td><td><tr><td>serialize_compatible<td>STRUCT<td>directBuffer<td>True<td>2393817.762938<td>8702412.752357<td>106458.212005<td><td>263623.143601<td><td><tr><td>serialize_compatible<td>STRUCT2<td>array<td>False<td>2773368.997680<td>2575824.143864<td>125807.748004<td><td>58509.125342<td><td><tr><td>serialize_compatible<td>STRUCT2<td>array<td>True<td>2564174.550276<td>3543082.528217<td>114983.546343<td><td>55552.977735<td><td><tr><td>serialize_compatible<td>STRUCT2<td>directBuffer<td>False<td>1912402.937879<td>2714748.572248<td>92130.672361<td><td>58908.567439<td><td><tr><td>serialize_compatible<td>STRUCT2<td>directBuffer<td>True<td>1848338.968058<td>1866073.031851<td>88989.724768<td><td>55524.373547<td><td><tr><td>serialize_compatible<td>MEDIA_CONTENT<td>array<td>False<td>1679272.036223<td>2992288.235281<td>188911.259146<td><td>377195.903772<td><td><tr><td>serialize_compatible<td>MEDIA_CONTENT<td>array<td>True<td>1406736.538716<td>2058738.716953<td>145782.916427<td><td>351657.879556<td><td><tr><td>serialize_compatible<td>MEDIA_CONTENT<td>directBuffer<td>False<td>1710680.937387<td>2291443.556971<td>185363.714829<td><td>371729.727192<td><td><tr><td>serialize_compatible<td>MEDIA_CONTENT<td>directBuffer<td>True<td>1149999.473994<td>1804349.244125<td>142836.961878<td><td>343834.954942<td><td><tr><td>serialize_compatible<td>SAMPLE<td>array<td>False<td>3604596.465625<td>4409055.687063<td>378907.663184<td><td>234454.975158<td><td><tr><td>serialize_compatible<td>SAMPLE<td>array<td>True<td>1619648.337293<td>1840705.439334<td>320815.567701<td><td>206174.173039<td><td><tr><td>serialize_compatible<td>SAMPLE<td>directBuffer<td>False<td>3484533.218305<td>5043538.364886<td>296102.615094<td><td>194761.224263<td><td><tr><td>serialize_compatible<td>SAMPLE<td>directBuffer<td>True<td>1730822.630648<td>1859289.705838<td>276757.392449<td><td>212840.483308<td><td><tr><td>deserialize<td>STRUCT<td>array<td>False<td>4595230.434552<td><td>607750.343557<td>357887.235311<td>84709.108821<td>29603.066599<td>517381.168594<tr><td>deserialize<td>STRUCT<td>array<td>True<td>4634753.596131<td><td>552802.227807<td>353480.554035<td>91050.370224<td>29727.744196<td><tr><td>deserialize<td>STRUCT<td>directBuffer<td>False<td>5012002.859236<td><td>910534.169114<td>352441.597147<td>91151.633583<td>28717.004518<td>538922.947147<tr><td>deserialize<td>STRUCT<td>directBuffer<td>True<td>4864329.316938<td><td>914404.107564<td>334574.303484<td>91037.205901<td>29549.998286<td><tr><td>deserialize<td>STRUCT2<td>array<td>False<td>1126298.359550<td><td>275984.042401<td>280131.091068<td>69758.767783<td>14888.805111<td>416212.973861<tr><td>deserialize<td>STRUCT2<td>array<td>True<td>1046649.083082<td><td>222710.554833<td>260649.308016<td>68616.029248<td>14034.100664<td><tr><td>deserialize<td>STRUCT2<td>directBuffer<td>False<td>1117586.457565<td><td>319247.256793<td>262519.858810<td>66866.108653<td>14652.043788<td>425523.315814<tr><td>deserialize<td>STRUCT2<td>directBuffer<td>True<td>1018277.848128<td><td>249105.828416<td>234973.637096<td>65338.345185<td>14425.886048<td><tr><td>deserialize<td>MEDIA_CONTENT<td>array<td>False<td>2054066.903469<td><td>577631.234369<td>363455.785182<td>118156.072284<td>38536.250402<td>951662.019963<tr><td>deserialize<td>MEDIA_CONTENT<td>array<td>True<td>1507767.206603<td><td>365530.417232<td>304371.728638<td>120016.594171<td>38957.191090<td><tr><td>deserialize<td>MEDIA_CONTENT<td>directBuffer<td>False<td>1502746.028159<td><td>389473.174523<td>311691.658687<td>111067.942626<td>40512.632076<td>964664.641598<tr><td>deserialize<td>MEDIA_CONTENT<td>directBuffer<td>True<td>1290593.975753<td><td>306995.220799<td>251820.171513<td>121820.821260<td>37030.594632<td><tr><td>deserialize<td>SAMPLE<td>array<td>False<td>2069988.624415<td><td>979173.981159<td>473409.796491<td>119471.518388<td>29309.573998<td>619338.385412<tr><td>deserialize<td>SAMPLE<td>array<td>True<td>1797942.442313<td><td>716438.884369<td>428315.502365<td>121106.002978<td>27466.003923<td><tr><td>deserialize<td>SAMPLE<td>directBuffer<td>False<td>2229791.078395<td><td>983538.936801<td>441027.550809<td>117806.916589<td>28128.457935<td>624804.978534<tr><td>deserialize<td>SAMPLE<td>directBuffer<td>True<td>1958815.397807<td><td>762889.302732<td>420523.770904<td>121940.783597<td>28221.014735<td><tr><td>deserialize_compatible<td>STRUCT<td>array<td>False<td>2110335.039275<td>4978833.206806<td>78771.635309<td><td>88617.486795<td><td><tr><td>deserialize_compatible<td>STRUCT<td>array<td>True<td>2135681.982674<td>4807963.882520<td>72805.937649<td><td>90206.654212<td><td><tr><td>deserialize_compatible<td>STRUCT<td>directBuffer<td>False<td>1596464.248141<td>5149070.657830<td>58574.904225<td><td>89580.561575<td><td><tr><td>deserialize_compatible<td>STRUCT<td>directBuffer<td>True<td>1684681.074242<td>5137500.621288<td>60685.320299<td><td>84407.472531<td><td><tr><td>deserialize_compatible<td>STRUCT2<td>array<td>False<td>849507.176263<td>1201998.142474<td>60602.285743<td><td>63703.763814<td><td><tr><td>deserialize_compatible<td>STRUCT2<td>array<td>True<td>815120.319155<td>1058423.614156<td>62729.908347<td><td>69521.573119<td><td><tr><td>deserialize_compatible<td>STRUCT2<td>directBuffer<td>False<td>784036.589363<td>1131212.586953<td>54637.329134<td><td>69342.030965<td><td><tr><td>deserialize_compatible<td>STRUCT2<td>directBuffer<td>True<td>782679.662083<td>1089162.408165<td>51761.569591<td><td>68542.055543<td><td><tr><td>deserialize_compatible<td>MEDIA_CONTENT<td>array<td>False<td>1441671.706320<td>2279742.810882<td>180882.860363<td><td>121619.090797<td><td><tr><td>deserialize_compatible<td>MEDIA_CONTENT<td>array<td>True<td>1121136.039627<td>1623938.202345<td>154311.211540<td><td>119994.104050<td><td><tr><td>deserialize_compatible<td>MEDIA_CONTENT<td>directBuffer<td>False<td>1256034.732514<td>1718098.363961<td>134485.160300<td><td>107594.474890<td><td><tr><td>deserialize_compatible<td>MEDIA_CONTENT<td>directBuffer<td>True<td>1054942.751816<td>1333345.536684<td>119311.787329<td><td>116531.023438<td><td><tr><td>deserialize_compatible<td>SAMPLE<td>array<td>False<td>2296046.895861<td>2485564.396196<td>255086.928308<td><td>121898.105768<td><td><tr><td>deserialize_compatible<td>SAMPLE<td>array<td>True<td>1834139.395757<td>2002938.794909<td>238811.995510<td><td>121297.485903<td><td><tr><td>deserialize_compatible<td>SAMPLE<td>directBuffer<td>False<td>2308111.633661<td>2289261.533644<td>201993.787890<td><td>124044.417439<td><td><tr><td>deserialize_compatible<td>SAMPLE<td>directBuffer<td>True<td>1820490.585648<td>1927548.827586<td>174534.710870<td><td>120276.449497<td><td></table>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=java-zero-copy>Java Zero-copy<a href=#java-zero-copy class=hash-link aria-label="Direct link to Java Zero-copy" title="Direct link to Java Zero-copy" translate=no></a></h4>
<table><thead><tr><th>Benchmark<th>array_size<th>bufferType<th>dataType<th>Fory<th>Kryo<th>Fst<tbody><tr><td>serialize<td>200<td>array<td>BUFFER<td>5123572.914045<td>1985187.977633<td>2400193.220466<tr><td>serialize<td>200<td>array<td>PRIMITIVE_ARRAY<td>8297232.942927<td>147342.606262<td>313986.053417<tr><td>serialize<td>200<td>directBuffer<td>BUFFER<td>5400346.890126<td>1739454.519770<td>2282550.111756<tr><td>serialize<td>200<td>directBuffer<td>PRIMITIVE_ARRAY<td>8335248.350301<td>972683.763633<td>294132.218623<tr><td>serialize<td>1000<td>array<td>BUFFER<td>4979590.929127<td>1616159.671230<td>1805557.477810<tr><td>serialize<td>1000<td>array<td>PRIMITIVE_ARRAY<td>8772856.921028<td>31395.721514<td>67209.107012<tr><td>serialize<td>1000<td>directBuffer<td>BUFFER<td>5376191.775007<td>1377272.568510<td>1644789.427010<tr><td>serialize<td>1000<td>directBuffer<td>PRIMITIVE_ARRAY<td>8207563.785251<td>209183.090868<td>66108.014322<tr><td>serialize<td>5000<td>array<td>BUFFER<td>5018916.322770<td>711287.533377<td>811029.402136<tr><td>serialize<td>5000<td>array<td>PRIMITIVE_ARRAY<td>8027439.580226<td>6248.006967<td>14997.400124<tr><td>serialize<td>5000<td>directBuffer<td>BUFFER<td>5330897.682960<td>707092.956534<td>477148.540850<tr><td>serialize<td>5000<td>directBuffer<td>PRIMITIVE_ARRAY<td>7695981.988316<td>43565.678616<td>15000.378818<tr><td>deserialize<td>200<td>array<td>BUFFER<td>3302149.383135<td>1296284.787720<td>657754.887247<tr><td>deserialize<td>200<td>array<td>PRIMITIVE_ARRAY<td>986136.067809<td>146675.360652<td>219333.990504<tr><td>deserialize<td>200<td>directBuffer<td>BUFFER<td>3113115.471758<td>1004844.498712<td>598421.278941<tr><td>deserialize<td>200<td>directBuffer<td>PRIMITIVE_ARRAY<td>991807.969328<td>518713.299422<td>179604.045774<tr><td>deserialize<td>1000<td>array<td>BUFFER<td>2831942.848999<td>721266.541130<td>422147.154601<tr><td>deserialize<td>1000<td>array<td>PRIMITIVE_ARRAY<td>205671.992736<td>30409.835023<td>53100.903684<tr><td>deserialize<td>1000<td>directBuffer<td>BUFFER<td>3397690.327371<td>592972.713203<td>298929.116572<tr><td>deserialize<td>1000<td>directBuffer<td>PRIMITIVE_ARRAY<td>202275.242341<td>112132.004609<td>38572.001768<tr><td>deserialize<td>5000<td>array<td>BUFFER<td>3296658.120035<td>147251.846111<td>136934.604328<tr><td>deserialize<td>5000<td>array<td>PRIMITIVE_ARRAY<td>40312.590172<td>6122.351228<td>10672.872798<tr><td>deserialize<td>5000<td>directBuffer<td>BUFFER<td>3284441.570594<td>148614.476829<td>77950.612503<tr><td>deserialize<td>5000<td>directBuffer<td>PRIMITIVE_ARRAY<td>40413.743717<td>21826.040410<td>8561.694533</table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=xlang-benchmark>Xlang Benchmark<a href=#xlang-benchmark class=hash-link aria-label="Direct link to Xlang Benchmark" title="Direct link to Xlang Benchmark" translate=no></a></h2>
<p>Run from <code>benchmarks/java/run.sh</code>. Raw JMH JSON stays under the ignored local <code>benchmarks/java/reports/</code> directory; <code>throughput.png</code> and this xlang section are synced into <code>docs/benchmarks/java/</code>.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token builtin class-name">cd</span><span class="token plain"> benchmarks/java</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">./run.sh</span><br/></div></code></pre></div></div>
<p>JMH parameters: <code>-f 1 -wi 3 -i 3 -t 1 -w 3s -r 3s -bm thrpt -tu s</code>. Higher throughput is better.</p>
<p><img decoding=async loading=lazy alt="Java Xlang Serialization Throughput" src=/assets/images/throughput-8aa4e1148f407e3b5450e3b7bc769835.png width=2724 height=1445 class=img_ev3q /></p>
<table><thead><tr><th>Data type<th>Operation<th>Fory ops/sec<th>Protobuf ops/sec<th>Flatbuffer ops/sec<th>Fastest<tbody><tr><td>NumericStruct<td>Serialize<td>46,787,647<td>33,024,161<td>9,612,018<td>Fory<tr><td>NumericStruct<td>Deserialize<td>71,683,707<td>29,837,931<td>40,514,436<td>Fory<tr><td>Sample<td>Serialize<td>17,406,902<td>2,071,963<td>3,153,672<td>Fory<tr><td>Sample<td>Deserialize<td>17,772,123<td>1,867,967<td>4,179,494<td>Fory<tr><td>MediaContent<td>Serialize<td>10,783,325<td>1,781,338<td>1,444,737<td>Fory<tr><td>MediaContent<td>Deserialize<td>7,950,203<td>2,184,597<td>3,453,985<td>Fory<tr><td>NumericStructList<td>Serialize<td>21,263,673<td>2,511,081<td>3,047,836<td>Fory<tr><td>NumericStructList<td>Deserialize<td>19,249,877<td>2,067,204<td>8,168,569<td>Fory<tr><td>SampleList<td>Serialize<td>4,580,165<td>401,280<td>696,268<td>Fory<tr><td>SampleList<td>Deserialize<td>3,811,985<td>344,945<td>773,625<td>Fory<tr><td>MediaContentList<td>Serialize<td>1,657,717<td>353,717<td>296,868<td>Fory<tr><td>MediaContentList<td>Deserialize<td>1,111,043<td>435,956<td>516,192<td>Fory</table></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href=https://github.com/apache/fory-site/tree/main/docs/benchmarks/java/README.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#system-environment class="table-of-contents__link toc-highlight">System Environment</a><li><a href=#jmh-params class="table-of-contents__link toc-highlight">JMH params</a><li><a href=#benchmark-data class="table-of-contents__link toc-highlight">Benchmark Data</a><ul><li><a href=#struct class="table-of-contents__link toc-highlight">Struct</a><li><a href=#struct2 class="table-of-contents__link toc-highlight">Struct2</a><li><a href=#mediacontent class="table-of-contents__link toc-highlight">MediaContent</a><li><a href=#sample class="table-of-contents__link toc-highlight">Sample</a></ul><li><a href=#java-benchmark class="table-of-contents__link toc-highlight">Java Benchmark</a><ul><li><a href=#serialize-to-heap-buffer class="table-of-contents__link toc-highlight">Serialize to heap buffer</a><li><a href=#off-heap-serialization class="table-of-contents__link toc-highlight">Off-heap serialization</a><li><a href=#zero-copy-serialization class="table-of-contents__link toc-highlight">Zero-copy serialization</a><li><a href=#benchmark-data-1 class="table-of-contents__link toc-highlight">Benchmark Data</a></ul><li><a href=#xlang-benchmark class="table-of-contents__link toc-highlight">Xlang Benchmark</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://lists.apache.org/list.html?dev@fory.apache.org target=_blank rel="noopener noreferrer" class=footer__link-item>Mailing list<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://join.slack.com/t/fory-project/shared_invite/zt-1u8soj4qc-ieYEu7ciHOqA2mo47llS8A target=_blank rel="noopener noreferrer" class=footer__link-item>Slack<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://twitter.com/ApacheFory target=_blank rel="noopener noreferrer" class=footer__link-item>Twitter<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/start/install>Install</a><li class=footer__item><a class=footer__link-item href=/docs/start/usage>Usage</a><li class=footer__item><a class=footer__link-item href=/docs/introduction/benchmark>Benchmark</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Repositories</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/apache/fory target=_blank rel="noopener noreferrer" class=footer__link-item>Apache Fory™<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://github.com/apache/fory-site target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=margin-bottom--sm><a href=https://apache.org/ rel="noopener noreferrer" class=footerLogoLink_BH7S><img src=/img/asf_logo.svg alt="ASF Logo" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width=200 /><img src=/img/asf_logo.svg alt="ASF Logo" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width=200 /></a></div><div class=footer__copyright><div>
<p>
Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br/>
Apache Fory, Fory, Apache, the Apache Logo and the Apache Fory logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
</p>
</div></div></div></div></footer></div></body>