openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Curtis (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (OPENJPA-2353) Reduce object allocations
Date Mon, 18 Mar 2013 20:04:16 GMT

     [ https://issues.apache.org/jira/browse/OPENJPA-2353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rick Curtis updated OPENJPA-2353:
---------------------------------

    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.

  was:This JIRA will be used to check in a couple general purpose object allocation improvements.

     Issue Type: Improvement  (was: Bug)
    
> Reduce object allocations
> -------------------------
>
>                 Key: OPENJPA-2353
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2353
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: kernel, performance
>    Affects Versions: 2.3.0, 2.2.2
>            Reporter: Rick Curtis
>            Assignee: Rick Curtis
>            Priority: Minor
>             Fix For: 2.2.2
>
>
> 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.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message