You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Michael Andre Pearce (JIRA)" <ji...@apache.org> on 2018/01/13 21:57:00 UTC

[jira] [Updated] (ARTEMIS-1606) Change AddressInfo RoutingType Set to use EnumSet

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

Michael Andre Pearce updated ARTEMIS-1606:
------------------------------------------
    Description: 
RoutingType is a enum, as such can take advantage of the benefits of EnumSet. Its a specialist set designed for Enum's.

https://docs.oracle.com/javase/7/docs/api/java/util/EnumSet.html

https://www.techempower.com/blog/2017/02/14/enumset-and-enummap/

This will reduce memory footprint due to being many times more compact, this is particularly important as this Address Info and Routing Type sets are in the hot path of message flow. And that there is only two routing types currently so a very small enum.

Also at the same time to remove the iterator from the getRoutingType which is in the hotpath. Like wise we can avoid it if AddressInfo is constructed with a single RoutingType.

  was:
RoutingType is a enum, as such can take advantage of the benefits of EnumSet. Its a specialist set designed for Enum's.

https://docs.oracle.com/javase/7/docs/api/java/util/EnumSet.html

https://www.techempower.com/blog/2017/02/14/enumset-and-enummap/

This will reduce memory footprint due to being many times more compact, this is particularly important as this Address Info and Routing Type sets are in the hot path of message flow.

Also at the same time to remove the iterator from the getRoutingType which is in the hotpath. Like wise we can avoid it if AddressInfo is constructed with a single RoutingType.


> Change AddressInfo RoutingType Set to use EnumSet 
> --------------------------------------------------
>
>                 Key: ARTEMIS-1606
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1606
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>            Reporter: Michael Andre Pearce
>
> RoutingType is a enum, as such can take advantage of the benefits of EnumSet. Its a specialist set designed for Enum's.
> https://docs.oracle.com/javase/7/docs/api/java/util/EnumSet.html
> https://www.techempower.com/blog/2017/02/14/enumset-and-enummap/
> This will reduce memory footprint due to being many times more compact, this is particularly important as this Address Info and Routing Type sets are in the hot path of message flow. And that there is only two routing types currently so a very small enum.
> Also at the same time to remove the iterator from the getRoutingType which is in the hotpath. Like wise we can avoid it if AddressInfo is constructed with a single RoutingType.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)