[
https://issues.apache.org/jira/browse/MIME4J-302?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benoit Tellier closed MIME4J-302.
---------------------------------
Fix Version/s: 0.8.6
Resolution: Fixed
> MessageBuilder::parse repeatedly calls toLowerCase on header names
> ------------------------------------------------------------------
>
> Key: MIME4J-302
> URL: https://issues.apache.org/jira/browse/MIME4J-302
> Project: James Mime4j
> Issue Type: Improvement
> Components: core, dom
> Reporter: Benoit Tellier
> Priority: Major
> Labels: perf
> Fix For: 0.8.6
>
> Attachments: mime4j-302-after.png, mime4j-302-before.png
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> As attached I was surprised MIME4J parsing spends 18% of its time calling
> toLowerCase on header names. This represents 12% of allocated memory.
> By holding the lowerCased name as part of the field name, and doing lazy
> initialization on it we can get this down to 6%.
> Also, an optimization implemented in MaximalBodyDescriptor aims at reducing
> the costs of toLowerCase calls: upon known header names lookup the lowercase
> version of the field instead of the normal version to benefit optimizations
> (calling toLowerCase on a lowerCase string do not do allocation, it just
> iterates String content). It might be worth generalizing it.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)