Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 2.2.2, 2.3.0
    • Fix Version/s: 2.2.2, 2.3.0
    • Component/s: kernel, performance
    • Labels:
      None

      Description

      While trolling through some object allocation profiles I found two places that we can greatly reduce object allocations for most applications.

      The first is in BrokerImpl.initializeOperatingSet(). In this method we ALWAYS create a new IdentityMap, regardless of whether we use it or not. This map is used for cascading operations and isn't used otherwise.

      The second improvement comes in when initializing a new Entity. During loading of an Entity, we will allocation three BitSets, one to keep track of clean fields, one for dirty, and another for flushed fields. In the event that we don't dirty / flush anything for a given Entity the dirty and flushed BitSets are a waste.

        Activity

        Albert Lee made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Rick Curtis made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 2.3.0 [ 12319463 ]
        Resolution Fixed [ 1 ]
        Rick Curtis made changes -
        Field Original Value New Value
        Issue Type Bug [ 1 ] Improvement [ 4 ]
        Description This JIRA will be used to check in a couple general purpose object allocation improvements. While trolling through some object allocation profiles I found two places that we can greatly reduce object allocations for most applications.

        The first is in BrokerImpl.initializeOperatingSet(). In this method we ALWAYS create a new IdentityMap, regardless of whether we use it or not. This map is used for cascading operations and isn't used otherwise.

        The second improvement comes in when initializing a new Entity. During loading of an Entity, we will allocation three BitSets, one to keep track of clean fields, one for dirty, and another for flushed fields. In the event that we don't dirty / flush anything for a given Entity the dirty and flushed BitSets are a waste.
        Rick Curtis created issue -

          People

          • Assignee:
            Rick Curtis
            Reporter:
            Rick Curtis
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development