[
https://issues.apache.org/jira/browse/SHIRO-566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matt Bishop updated SHIRO-566:
------------------------------
Description:
org.apache.shiro.util.CollectionUtils.asSet() and .asList() could use
Collections wrappers for the passed-in elements. These are smaller and faster
than copying the contents into other collections.
The editability of the returned Collections is not required as currently it
will return either an unmodifiable emptyList() / emptySet() or a modifiable
ArrayList / LinkedHashSet. Ideally it would wrap the LinkedHashSet in
unmodifiableSet and declare the immutability of the returned collections in the
docs.
In my use case for Shiro we create about 6000 - 7000 WildcardPermission objects
per second. The great majority of them have a single subpart and don't need a
proper LinkedHashSet created. This change improve the performance of our system
by 10% under heavy load, mostly due to the reduced GC of temporary
LinkedHashSet objects.
was:
org.apache.shiro.util.CollectionUtils.asSet() and .asList() could use
Collections wrappers for the passed-in elements. These are smaller and faster
than copying the contents into other collections.
The editability of the returned Collections is not required as currently it
will return either an unmodifiable emptyList() / emptySet() or a modifiable
ArrayList / LinkedHashSet. Ideally it would wrap the LinkedHashSet in
unmodifiableSet and declare the immutability of the returned collections in the
docs.
> CollectionUtils should use Collections wrappers of arrays if possible
> ---------------------------------------------------------------------
>
> Key: SHIRO-566
> URL: https://issues.apache.org/jira/browse/SHIRO-566
> Project: Shiro
> Issue Type: Improvement
> Components: Authorization (access control)
> Affects Versions: 1.2.4
> Environment: Any
> Reporter: Matt Bishop
> Priority: Trivial
>
> org.apache.shiro.util.CollectionUtils.asSet() and .asList() could use
> Collections wrappers for the passed-in elements. These are smaller and faster
> than copying the contents into other collections.
> The editability of the returned Collections is not required as currently it
> will return either an unmodifiable emptyList() / emptySet() or a modifiable
> ArrayList / LinkedHashSet. Ideally it would wrap the LinkedHashSet in
> unmodifiableSet and declare the immutability of the returned collections in
> the docs.
> In my use case for Shiro we create about 6000 - 7000 WildcardPermission
> objects per second. The great majority of them have a single subpart and
> don't need a proper LinkedHashSet created. This change improve the
> performance of our system by 10% under heavy load, mostly due to the reduced
> GC of temporary LinkedHashSet objects.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)