<!DOCTYPE html>
<!-- BaNnErBlUrFlE-BoDy-start -->
<!-- Preheader Text : BEGIN -->
<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;max-height:0px;opacity:0;overflow:hidden;">
Thanks for the taking the time to respond. On 24/02/2026 00: 32, Andy Goryachev wrote: > What trade off are you making here? It seems we're trading a small memory gain for more CPU use (extra indirection, walking a list linearly to find the</div>
<!-- Preheader Text : END -->

<!-- Email Banner : BEGIN -->
<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;max-height:0px;opacity:0;overflow:hidden;">ZjQcmQRYFpfptBannerStart</div>

<!--[if ((ie)|(mso))]>
  <table border="0" cellspacing="0" cellpadding="0" width="100%" style="padding: 0px 0px 10px 0px; direction: ltr" lang="en"><tr><td>
    <table border="0" cellspacing="0" cellpadding="0" style="padding: 0px 8px 6px 8px; width: 100%; border-radius:4px; border-top:4px solid #8193a0;background-color:#60beeb;"><tr><td valign="top">
      <table align="left" border="0" cellspacing="0" cellpadding="0" style="padding: 0px 8px 4px 8px; font-size: 12px; line-height: 16px">
        <tr><td style="color:#000000; font-family: 'Arial', sans-serif; font-weight:bold; font-size:14px; line-height: 20px; direction: ltr">
          This Message Is From an External Sender
        </td></tr>
        <tr><td style="color:#000000; font-weight:normal; font-family: 'Arial', sans-serif; font-size:12px; direction: ltr">
          This message came from outside your organization.
        </td></tr>

      </table>
      <![if ie]><br clear="all"><![endif]>
      <table align="right" border="0" cellspacing="0" cellpadding="0" style="padding: 0px 0px 4px 0px; font-size: 14px; line-height: 36px"><tr>
        <td style="direction: ltr">  <a target="_blank" href="https://us-phishalarm-ewt.proofpoint.com/EWT/v1/ACWV5N9M2RV99hQ!NB2w9kOkmgLOPxPqHXmUmLdxC9ZtwG8cWgWC3QrerJBijvilB58UVSfh4k_zegB5C4fjjL_at8AgPLZdyLCvyMpN0swrO6xA-BAyXiQ$" style="mso-padding-alt: 7px; padding: 7px; border-radius: 2px; border: 1px solid #666666; "><strong style="font-weight: normal; color: #000000; text-decoration: none; font-family: 'Arial', sans-serif; font-size: 14px;">  Report Suspicious  </strong></a>  ‌ </td>
      </tr></table>
    </td></tr></table>
  </td></tr></table>
<![endif]-->

<![if !((ie)|(mso))]>
  <div dir="ltr" lang="en" id="pfptBanner9m0t09i" style="all: revert !important; display:block !important; text-align: left !important; margin: 0 0 10px 0 !important; padding:7px 16px 8px 16px !important; border-radius: 4px !important; min-width: 200px !important; background-color: #60beeb !important; background-color: #60beeb; border-top: 4px solid #8193a0 !important; border-top: 4px solid #8193a0;">
    <div id="pfptBanner9m0t09i" style="all: unset !important; float:left !important; display:block !important; margin: 1px 0 1px 0 !important; max-width: 600px !important;">
      <div id="pfptBanner9m0t09i" style="all: unset !important; display:block !important; visibility: visible !important; background-color: #60beeb !important; color:#000000 !important; color:#000000; font-family: 'Arial', sans-serif !important; font-family: 'Arial', sans-serif; font-weight:bold !important; font-weight:bold; font-size:14px !important; line-height:1.29 !important; line-height:1.29">
        This Message Is From an External Sender
      </div>
      <div id="pfptBanner9m0t09i" style="all: unset !important; display:block !important; visibility: visible !important; background-color: #60beeb !important; color:#000000 !important; color:#000000; font-weight:normal; font-family: 'Arial', sans-serif !important; font-family: 'Arial', sans-serif; font-size:12px !important; line-height:1.5 !important; line-height:1.5; margin-top:2px !important;">
This message came from outside your organization.
      </div>

    </div>
    <div id="pfptBanner9m0t09i" style="all: unset !important; float: right !important; display: block !important; display: block; margin-left: 16px !important; margin-top: 1px !important; text-align: right !important; width: fit-content !important; font-size: 12px !important">
<a id="pfptBanner9m0t09i" href="https://us-phishalarm-ewt.proofpoint.com/EWT/v1/ACWV5N9M2RV99hQ!NB2w9kOkmgLOPxPqHXmUmLdxC9ZtwG8cWgWC3QrerJBijvilB58UVSfh4k_zegB5C4fjjL_at8AgPLZdyLCvyMpN0swrO6xA-BAyXiQ$"
    style="all: unset !important; display: inline-block !important; text-decoration: none">
    <div class="pfptPrimaryButton9m0t09i" style="display: inline-block !important; display: inline-block; visibility: visible !important; opacity: 1 !important; color: #000000 !important; color: #000000; font-family: 'Arial', sans-serif !important; font-family: 'Arial', sans-serif; font-size: 14px !important;  font-weight: normal !important; text-decoration: none !important; border-radius: 2px !important; margin-top: 3px !important; margin-bottom: 3px !important; margin-left: 16px !important; padding: 7.5px 16px !important; white-space: nowrap !important; width: fit-content !important;
        border: 1px solid #666666">
        Report Suspicious
    </div>
</a>
    </div>
    <div style="clear: both !important; display: block !important; visibility: hidden !important; line-height: 0 !important; font-size: 0.01px !important; height: 0px"> </div>
  </div>
<![endif]>

<div style="display:none !important;display:none;visibility:hidden;mso-hide:all;font-size:1px;color:#ffffff;line-height:1px;max-height:0px;opacity:0;overflow:hidden;">ZjQcmQRYFpfptBannerEnd</div>
<!-- Email Banner : END -->

<!-- BaNnErBlUrFlE-BoDy-end -->
<html>
  <head><!-- BaNnErBlUrFlE-HeAdEr-start -->
<style>
  #pfptBanner9m0t09i { all: revert !important; display: block !important;
    visibility: visible !important; opacity: 1 !important;
    background-color: #60beeb !important;
    max-width: none !important; max-height: none !important }
  .pfptPrimaryButton9m0t09i:hover, .pfptPrimaryButton9m0t09i:focus {
    background-color: #77a8c4 !important; }
  .pfptPrimaryButton9m0t09i:active {
    background-color: #8193a0 !important; }
  html:root, html:root>body { all: revert !important; display: block !important;
    visibility: visible !important; opacity: 1 !important; }
</style>

<!-- BaNnErBlUrFlE-HeAdEr-end -->

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Thanks for the taking the time to respond.<br>
    </p>
    <div class="moz-cite-prefix">On 24/02/2026 00:32, Andy Goryachev
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CY8PR10MB72654E6BACA208E59A4F12A8E577A@CY8PR10MB7265.namprd10.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span
style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">>
          What trade off are you making here?  It seems we're trading a
          small memory gain for more CPU use (extra indirection, walking
          a list linearly to find the correct property on each
          use/access VS no indirection, no list walking).</span></p>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        You are right.  The tradeoff is non-zero memory gain (a few
        megabytes, to the tune of maybe 5% of total heap size) at the
        cost of extra CPU cycles.  The rationale is that even though we
        consume extra CPU, it's much less noticeable because of the
        cache-friendly implementation and non-zero positive impact on
        garbage collector (less memory to scan).</div>
    </blockquote>
    <p>What is more cache friendly about adding several extra
      indirections to get to a property's value?  Let me see:</p>
    <p>Before:</p>
    <p>- isFocusTraversable(): get property -> get value</p>
    <p>After:</p>
    <p>- isFocusTraversable(): get fast map -> get key ArrayList
      -> get internal array -> get value ArrayList -> get
      internal array -> get property -> get value</p>
    <p>For the garbage collector, the properties are likely going to be
      in an area of the GC collector that will be scanned rarely, and
      not part of the frequent scans for young objects. I don't think we
      can generally conclude that having less memory used will have an
      overall positive impact on the GC here.  The properties will be
      seen as long-lived by the GC, and will reside in an area only
      scanned rarely, which has very little impact on the performance of
      most GC implementations.  <br>
    </p>
    <blockquote type="cite"
cite="mid:CY8PR10MB72654E6BACA208E59A4F12A8E577A@CY8PR10MB7265.namprd10.prod.outlook.com">
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span
style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">>
          Are the resource constrained platforms you named generally
          memory or CPU constrained?</span></p>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        I asked Gluon for some feedback on iOS/Android.  However, my
        previous experience with a large trading application says that
        memory footprint savings outweighs the CPU cycles, so I would
        imagine we'll get a net gain even on the desktop.</div>
    </blockquote>
    <p>That's anecdotal, and will depend on the type of application,
      platform, CPU cores available, etc.  So while you may be correct
      for your trading application, it may be completely the opposite
      for a task tracking application. In general, memory use is hardly
      a factor for most applications; most Java apps don't even bother
      to limit the heap, yet complain about several GB's of memory use
      when they have a retained size of less than half a GB.  Not that
      I'm not in favor of reducing memory footprint, but I seriously
      wonder if there is much to gain at the property level.<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite"
cite="mid:CY8PR10MB72654E6BACA208E59A4F12A8E577A@CY8PR10MB7265.namprd10.prod.outlook.com">
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span
style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">>
          Have you investigated a breakdown of JavaFX memory use, and
          did the amount of memory used by properties come out on top
          here?</span></p>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        There is some statistics provided in <a
href="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/Experiments/NodeProperties.md"
          data-outlook-id="9074576b-7c43-438e-a9d5-ea05048e66cd"
          moz-do-not-send="true" class="moz-txt-link-freetext">
https://github.com/andy-goryachev-oracle/Test/blob/main/doc/Experiments/NodeProperties.md</a> ,
        please take a look.</div>
    </blockquote>
    I took a look, but could only find statistics about properties. I
    didn't see a breakdown of general JavaFX memory use (the other 95%)
    to see if properties are the lowest hanging fruit.<br>
    <blockquote type="cite"
cite="mid:CY8PR10MB72654E6BACA208E59A4F12A8E577A@CY8PR10MB7265.namprd10.prod.outlook.com">
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span
style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">>
          Would the gains you made here become irrelevant or less
          relevant with Compact Object Headers [<a
            href="https://openjdk.org/jeps/519"
            class="moz-txt-link-freetext"
            data-outlook-id="6cb8835d-b6f1-4268-bdc5-acb387ef1fbb"
            style="margin-top: 0px; margin-bottom: 0px;"
            moz-do-not-send="true">https://openjdk.org/jeps/519</a>]</span></p>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        Compact Object Headers are almost irrelevant here - the stats
        that were collected count the number of pointers saved (assumed
        8 bytes per pointer on 64 bit).  The stats ignore any other
        possible savings.</div>
    </blockquote>
    <p>Compact Object Headers is especially relevant here as you're
      optimizing small objects (properties) on which JEP519 offers the
      most relative gain.  Enabling it may reduce the 5% memory gain you
      measured to a smaller margin, which impacts the rationale for this
      change.</p>
    <p>Furthermore, if we're talking about saving memory, I think we can
      assume we're using small heaps (less than 32 GB).  In that case,
      Hotspot will use 4 bytes per pointer (compressed OOPs) not 8, so
      your assumption of 8 bytes per pointer will be incorrect in the
      vast majority of JavaFX cases.<br>
    </p>
    <blockquote type="cite"
cite="mid:CY8PR10MB72654E6BACA208E59A4F12A8E577A@CY8PR10MB7265.namprd10.prod.outlook.com">
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <p style="direction: ltr; margin-top: 0px; margin-bottom: 0px;"><span
style="font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">>
          I think the property look-up system cannot reasonably be List
          (FastMap despite its name is a List). Converting this to a map
          however is likely to require a small object (like Map.Entry)
          which will further reduce any gains you made here I think.</span></p>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        The FastMap is a map-like (key-value) storage, even though it's
        implemented as an array.  There is a debate as to what would the
        most efficient implementation entail (a hashmap, one array, or
        two arrays like the POC currently uses).  The idea is not to put
        <b>all</b>​ the properties into the container, but only the
        rarely used ones, with the end result of having a few (less than
        4-6, say).  This makes the object small and cache-friendly,
        which further speeds up the access.</div>
    </blockquote>
    <p>I'm aware of the intentions to only put the rarely used
      properties there.  What is rarely used will depend on the
      application.  How many properties will end up being stored there
      also depends on the application.  What if the app does need
      several of these properties and this structure grows to contain
      20-30 properties?<br>
    </p>
    <p>Currently your proposal wants to store these rarely used
      properties in an O(n) structure, whereas a hash based solutions
      are O(1), and where doing nothing is even faster as there is no
      map at all.<br>
    </p>
    <p>So although your map implementation may be small and cache
      friendly (that last point being debatable, see indirection count),
      it degrades badly when there are more than the predicted amount of
      properties, and requires many more indirections than the base case
      of doing nothing.</p>
    <p>There is talk about not having to do an expensive `hashCode` call
      in your proposal.  First, `hashCode` is really cheap for objects
      not implementing equality as it falls back on the
      Object#hashCode.  I believe this is the case for properties.  Even
      if it isn't the case, you could use the identity hash code here
      (the `==` equivalent in the hashing world).<br>
    </p>
    <p>However that "expensive" call is what enables the O(1) lookup of
      the value you are interested in, which can be truly cache friendly
      with the right structure (array based open addressed map).<br>
    </p>
    <p>--John<br>
    </p>
    <blockquote type="cite"
cite="mid:CY8PR10MB72654E6BACA208E59A4F12A8E577A@CY8PR10MB7265.namprd10.prod.outlook.com">
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        Thanks!</div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        -andy</div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div id="mail-editor-reference-message-container">
        <div class="ms-outlook-mobile-reference-message skipProofing"
          style="direction: ltr;">
        </div>
        <div class="ms-outlook-mobile-reference-message skipProofing"
style="text-align: left; padding: 3pt 0in 0in; border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentcolor currentcolor; font-family: Aptos; font-size: 12pt; color: black;">
          <b>From: </b>openjfx-dev <a class="moz-txt-link-rfc2396E" href="mailto:openjfx-dev-retn@openjdk.org"><openjfx-dev-retn@openjdk.org></a>
          on behalf of John Hendrikx <a class="moz-txt-link-rfc2396E" href="mailto:john.hendrikx@gmail.com"><john.hendrikx@gmail.com></a><br>
          <b>Date: </b>Thursday, February 19, 2026 at 15:28<br>
          <b>To: </b><a class="moz-txt-link-abbreviated" href="mailto:openjfx-dev@openjdk.org">openjfx-dev@openjdk.org</a>
          <a class="moz-txt-link-rfc2396E" href="mailto:openjfx-dev@openjdk.org"><openjfx-dev@openjdk.org></a><br>
          <b>Subject: </b>Re: Experiment: Node properties<br>
          <br>
        </div>
        <p class="ms-outlook-mobile-reference-message skipProofing"><br>
        </p>
        <div class="moz-cite-prefix">On 04/02/2026 22:17, Andy Goryachev
          wrote:</div>
        <blockquote>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            I would like to share the results of a little experiment
            involving optimization of storage of Node properties.  The
            basic idea is to create a compact fast map-like container to
            hold the rarely instantiated properties in order to reduce
            the application memory footprint.</div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <br>
          </div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            The savings are not overwhelming, but not exactly zero.  I
            would imagine this optimization might be more interesting in
            any resource constrained environment such as Android / iOS /
            RaspberryPi.  Please refer to [0] for the details.</div>
        </blockquote>
        <p class="ms-outlook-mobile-reference-message skipProofing">What
          trade off are you making here?  It seems we're trading a small
          memory gain for more CPU use (extra indirection, walking a
          list linearly to find the correct property on each use/access
          VS no indirection, no list walking).</p>
        <p class="ms-outlook-mobile-reference-message skipProofing">Are
          the resource constrained platforms you named generally memory
          or CPU constrained?</p>
        <p class="ms-outlook-mobile-reference-message skipProofing">Have
          you investigated a breakdown of JavaFX memory use, and did the
          amount of memory used by properties come out on top here?</p>
        <p class="ms-outlook-mobile-reference-message skipProofing">Would
          the gains you made here become irrelevant or less relevant
          with Compact Object Headers [<a
            href="https://openjdk.org/jeps/519"
            class="moz-txt-link-freetext"
            data-outlook-id="6cb8835d-b6f1-4268-bdc5-acb387ef1fbb"
            style="margin-top: 0px; margin-bottom: 0px;"
            moz-do-not-send="true">https://openjdk.org/jeps/519</a>]</p>
        <p class="ms-outlook-mobile-reference-message skipProofing"><br>
        </p>
        <blockquote>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <br>
          </div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            I encourage you to try it with your application, to see
            whether you notice any change in memory consumption and/or
            performance.  Let me know what you think!</div>
        </blockquote>
        <p class="ms-outlook-mobile-reference-message skipProofing">I
          like the idea, but I wonder if there really is much to gain
          here, and whether those gains will hold up with future Java
          improvements.</p>
        <p class="ms-outlook-mobile-reference-message skipProofing">I
          think the property look-up system cannot reasonably be List
          (FastMap despite its name is a List). Converting this to a map
          however is likely to require a small object (like Map.Entry)
          which will further reduce any gains you made here I think.</p>
        <p class="ms-outlook-mobile-reference-message skipProofing">--John</p>
        <blockquote>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <br>
          </div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            Cheers,</div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            -andy</div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <br>
          </div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <br>
          </div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <b>References</b></div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            <br>
          </div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
            [0] <a
href="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/Experiments/NodeProperties.md"
              class="moz-txt-link-freetext"
              data-outlook-id="217ca979-74ae-4107-9a0b-bf3cf23cb5ec"
              moz-do-not-send="true">
https://github.com/andy-goryachev-oracle/Test/blob/main/doc/Experiments/NodeProperties.md</a></div>
          <div class="ms-outlook-mobile-reference-message skipProofing"
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt;">
            <br>
          </div>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>