<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I used the no instrumentation branch with the IntelliJ profiler.
      Didn't see any performance issues.</p>
    <p>If you are adding enough nodes while also having a lot of
      stylesheets to arrive at a heap size of ~600MB, there is a
      performance impact in general even without using this branch.</p>
    <div class="moz-cite-prefix">On 06/02/2026 16:01, Andy Goryachev
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CY8PR10MB726544DB742D358B6B18F1A0E566A@CY8PR10MB7265.namprd10.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div
style="direction: ltr; font-family: "Iosevka Fixed SS16", Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        This is an interesting result, thanks for testing!  It sort of
        matches my result - not quite 10%, but then again it's not a
        complete set of properties/classes.  I wonder if doing this
        trick for Region and Labeled should release even more memory.</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);">
        Did you run the branch with no instrumentation and used
        VisualVM?  Did you notice any impact on performance?</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);">
        -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>Christopher Schnick <a class="moz-txt-link-rfc2396E" href="mailto:crschnick@xpipe.io"><crschnick@xpipe.io></a><br>
          <b>Date: </b>Thursday, February 5, 2026 at 20:29<br>
          <b>To: </b>Andy Goryachev <a class="moz-txt-link-rfc2396E" href="mailto:andy.goryachev@oracle.com"><andy.goryachev@oracle.com></a><br>
          <b>Cc: </b>OpenJFX <a class="moz-txt-link-rfc2396E" href="mailto:openjfx-dev@openjdk.org"><openjfx-dev@openjdk.org></a><br>
          <b>Subject: </b>[External] : Re: Experiment: Node properties<br>
          <br>
        </div>
        <p class="ms-outlook-mobile-reference-message skipProofing">I
          tested it with our application that creates a lot of nodes,
          and the heap was reduced by around 25-50MB on a ~600MB heap.
          But that was with putting as much nodes as possible on the
          screen.</p>
        <p class="ms-outlook-mobile-reference-message skipProofing">So
          yeah it's definitely nice to have if it doesn't introduce a
          lot of other complexity and potential issues.</p>
        <div class="moz-cite-prefix">On 05/02/2026 21:29, 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);">
            To take it further, decreasing the cost of rarely used
            properties in the Node class (or the Node class hierarchy
            should this idea gains traction) would make it possible to
            add more convenience properties such as boundsOnScreen,
            owningWindow, etc.</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);">
            -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);">
            <br>
          </div>
          <div id="mail-editor-reference-message-container">
            <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
                href="mailto:openjfx-dev-retn@openjdk.org"
                class="moz-txt-link-rfc2396E"
                data-outlook-id="3b770fde-e371-4289-9eb7-c423e20377d5"
                moz-do-not-send="true">
                <openjfx-dev-retn@openjdk.org></a> on behalf of
              Andy Goryachev <a href="mailto:andy.goryachev@oracle.com"
                class="moz-txt-link-rfc2396E"
                data-outlook-id="b13629a5-d53d-4292-8126-cd753c913a4e"
                moz-do-not-send="true">
                <andy.goryachev@oracle.com></a><br>
              <b>Date: </b>Wednesday, February 4, 2026 at 13:17<br>
              <b>To: </b>OpenJFX <a
                href="mailto:openjfx-dev@openjdk.org"
                class="moz-txt-link-rfc2396E"
                data-outlook-id="0758fa69-a8a8-47ee-bdd9-d9f1a4fbf191"
                moz-do-not-send="true">
                <openjfx-dev@openjdk.org></a><br>
              <b>Subject: </b>Experiment: Node properties<br>
              <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 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>
            <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>
            <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://urldefense.com/v3/__https://github.com/andy-goryachev-oracle/Test/blob/main/doc/Experiments/NodeProperties.md__;!!ACWV5N9M2RV99hQ!KUAfcEsUwD1Nm7pkzJLJtwdpbpqI2T-46rvMVrfxUFaR6sizzAAMYZxWDvnr7_qJJylFQfIsOfOEEgGIYybK_ZWv$"
                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>
          </div>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>