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

Remko Popma resolved LOG4J2-1272.
---------------------------------
       Resolution: Fixed
    Fix Version/s: 2.6

Fixed in commit bec3b83.

Replaced CopyOnWriteArraySet with a custom data structure that exposes the 
underlying array.

> Improve LoggerConfig's data structure for AppenderControl objects
> -----------------------------------------------------------------
>
>                 Key: LOG4J2-1272
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1272
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.5
>            Reporter: Remko Popma
>            Assignee: Remko Popma
>             Fix For: 2.6
>
>
> LoggerConfig#callAppenders is performance sensitive since it is called for 
> every LogEvent. Currently the AppenderControl objects are stored in a 
> CopyOnWriteArraySet which is a very good fit for its intended use (vastly 
> more reads than writes, writes may happen concurrently in different threads), 
> but the disadvantage of this data structure is that it creates a new Iterator 
> instance each time we need to traverse its contents.
> We can do slightly better than this by storing the objects in an array and 
> keep this array in an AtomicReference. The array can be traversed by index 
> without allocating new objects.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to