[
https://issues.apache.org/jira/browse/OAK-1027?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jukka Zitting resolved OAK-1027.
--------------------------------
Resolution: Fixed
Fix Version/s: 0.10
Done in revisions 1524803 and 1524804.
The result is an about 6% performance improvement for SetPropertyTest on
Oak-Tar:
{noformat}
# SetPropertyTest min 10% 50% 90% max N
Oak-Tar before 239 242 246 257 406 240
Oak-Tar after 218 225 232 241 438 273
{noformat}
> Avoid turning multivalued properties to String arrays
> -----------------------------------------------------
>
> Key: OAK-1027
> URL: https://issues.apache.org/jira/browse/OAK-1027
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core
> Reporter: Jukka Zitting
> Assignee: Jukka Zitting
> Labels: performance
> Fix For: 0.10
>
>
> Many places especially in the security code use String arrays as an
> intermediate representation for multivalued name and string properties.
> Unfortunately this practice leads to quite a bit of extra memory allocation
> and extra work in performance-critical places like AC evaluation.
> For example, a significant percentage of the time in the SetProperty
> benchmark goes to PrivilegeUtil.readDefinitions(), just because of the array
> conversion that requires a number of extra object allocations and at least
> two extra iterations over the relevant value strings.
> That extra work could be avoided in readDefinitions() and other similar
> places if the Iterable<String> return type of PropertyState.getValues() was
> used directly instead of a String array.
--
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