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

Nicolas Malin updated OFBIZ-6298:
---------------------------------
    Description: 
With the javolution collection cleaning (OFBIZ-5169,OFBIZ-5781) , we need to 
realize a second pass to control what instantiation would be better.

For List between LinkedList, ArrayList
{quote}
Using ArrayList, rather than LinkedList, as a default is a good approach 
because ArrayList will work better in most situations (in terms of algorithmic 
runtimes and memory footprints).
However I think it is important to wisely choose ArrayList or LinkedList based 
on the context, because sometimes a linked list may be a better choice: I am 
not saying we should do it now and we can tackle this at a later moment, 
possibly focusing only on list that can be very big and analyzing their usage 
to see if array or linked list is better; it would be also nice, when we use 
ArrayList, to see if we can predict the capacity of the list and allocate it at 
creation: if we can do this we will have a more predictable memory usage and 
less unpredictable peaks under heavy load (when the array capacity is reached 
and the array is copied to a new one with double capacity).
{quote}
more documentation on :
 * https://docs.oracle.com/javase/tutorial/collections/implementations/list.html
 * 
http://stackoverflow.com/questions/322715/when-to-use-linkedlist-over-arraylist

For Map between HashMap and LinkedHashMap :
{quote}
Javolution Map Iterators return items in insertion sequence (HashMap does not), 
so any code relying on the original insertion order must use a LinkedHashMap.
{quote}

 * 
http://stackoverflow.com/questions/2889777/difference-between-hashmap-linkedhashmap-and-treemap

For Set beetwen HashSet and LinkedHashSet. (OFBIZ-6299)

If you detect an optimization, please comments this issues

  was:
With the javolution collection cleaning (OFBIZ-5169,OFBIZ-5781) , we need to 
realize a second pass to control what instantiation would be better.

For List between LinkedList, ArrayList
{quote}
Using ArrayList, rather than LinkedList, as a default is a good approach 
because ArrayList will work better in most situations (in terms of algorithmic 
runtimes and memory footprints).
However I think it is important to wisely choose ArrayList or LinkedList based 
on the context, because sometimes a linked list may be a better choice: I am 
not saying we should do it now and we can tackle this at a later moment, 
possibly focusing only on list that can be very big and analyzing their usage 
to see if array or linked list is better; it would be also nice, when we use 
ArrayList, to see if we can predict the capacity of the list and allocate it at 
creation: if we can do this we will have a more predictable memory usage and 
less unpredictable peaks under heavy load (when the array capacity is reached 
and the array is copied to a new one with double capacity).
{quote}
more documentation on :
 * https://docs.oracle.com/javase/tutorial/collections/implementations/list.html
 * 
http://stackoverflow.com/questions/322715/when-to-use-linkedlist-over-arraylist

For Map between HashMap and LinkedHashMap :
{quote}
Javolution Map Iterators return items in insertion sequence (HashMap does not), 
so any code relying on the original insertion order must use a LinkedHashMap.
{quote}

 * 
http://stackoverflow.com/questions/2889777/difference-between-hashmap-linkedhashmap-and-treemap

If you detect an optimization, please comments this issues


> Java collection use optimized
> -----------------------------
>
>                 Key: OFBIZ-6298
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-6298
>             Project: OFBiz
>          Issue Type: Improvement
>          Components: ALL COMPONENTS
>    Affects Versions: Trunk
>            Reporter: Nicolas Malin
>            Assignee: Nicolas Malin
>            Priority: Minor
>              Labels: collection, performance
>
> With the javolution collection cleaning (OFBIZ-5169,OFBIZ-5781) , we need to 
> realize a second pass to control what instantiation would be better.
> For List between LinkedList, ArrayList
> {quote}
> Using ArrayList, rather than LinkedList, as a default is a good approach 
> because ArrayList will work better in most situations (in terms of 
> algorithmic runtimes and memory footprints).
> However I think it is important to wisely choose ArrayList or LinkedList 
> based on the context, because sometimes a linked list may be a better choice: 
> I am not saying we should do it now and we can tackle this at a later moment, 
> possibly focusing only on list that can be very big and analyzing their usage 
> to see if array or linked list is better; it would be also nice, when we use 
> ArrayList, to see if we can predict the capacity of the list and allocate it 
> at creation: if we can do this we will have a more predictable memory usage 
> and less unpredictable peaks under heavy load (when the array capacity is 
> reached and the array is copied to a new one with double capacity).
> {quote}
> more documentation on :
>  * 
> https://docs.oracle.com/javase/tutorial/collections/implementations/list.html
>  * 
> http://stackoverflow.com/questions/322715/when-to-use-linkedlist-over-arraylist
> For Map between HashMap and LinkedHashMap :
> {quote}
> Javolution Map Iterators return items in insertion sequence (HashMap does 
> not), so any code relying on the original insertion order must use a 
> LinkedHashMap.
> {quote}
>  * 
> http://stackoverflow.com/questions/2889777/difference-between-hashmap-linkedhashmap-and-treemap
> For Set beetwen HashSet and LinkedHashSet. (OFBIZ-6299)
> If you detect an optimization, please comments this issues



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

Reply via email to