[
https://issues.apache.org/jira/browse/SLING-3380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13894320#comment-13894320
]
Carsten Ziegeler commented on SLING-3380:
-----------------------------------------
To immediately "free" the event object, we could use a Hashtable (the
properties object for the OSGi event) and already store the relevant
information (user id, external event) into this one. This object will be
created later on anyway.
However, this might not change that much as only after the iterator is
finished, the events are fired.
We could maybe reduce this a little bit and fire add/remove events immediately
and just collect change events
> Reduce memory footprint of JcrResourceListener
> ----------------------------------------------
>
> Key: SLING-3380
> URL: https://issues.apache.org/jira/browse/SLING-3380
> Project: Sling
> Issue Type: Improvement
> Components: JCR
> Affects Versions: JCR Resource 2.2.8
> Reporter: Michael Dürig
> Fix For: JCR Resource 2.3.2
>
>
> JcrResourceListener.onEvent(EventIterator) keeps references to all Event
> instances in the passed iterator. This has turned out as a memory bottleneck
> e.g. in the scenario where a large sub-tree is copied and NODE_ADDED events
> for all nodes in that sub-tree are generated.
> Furthermore Oak will be able to handle arbitrarily large transactions
> (Session.save). In such cases the EventIterator might contains millions of
> events.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)