[infinispan-issues] [JBoss JIRA] (ISPN-9778) XidImpl implementations can optimize some byte[] allocations

William Burns (Jira) issues at jboss.org
Wed Nov 28 15:38:02 EST 2018


     [ https://issues.jboss.org/browse/ISPN-9778?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

William Burns updated ISPN-9778:
--------------------------------
    Description: 
The EmbeddedXid and XidImpl classes show up on profiler for allocating byte[] in a local environment.

1. We should be able to remove the branch byte[] completely as well as its accompanying AtomicInteger and just return an empty byte[] that is cached (ie. Util.EMPTY_BYTE_ARRAY).
2. We can use the byte[] that is provided from the create method directly in XidImpl, which would reduce our allocation to just the 1 byte\[24\] for embedded or byte\[32\] for remote.
-3. We can return the byte[] directly for getGlobalTransactionId without copying.-

  was:
The EmbeddedXid and XidImpl classes show up on profiler for allocating byte[] in a local environment.

1. We should be able to remove the branch byte[] completely as well as its accompanying AtomicInteger and just return an empty byte[] that is cached (ie. Util.EMPTY_BYTE_ARRAY).
2. We can use the byte[] that is provided from the create method directly in XidImpl, which would reduce our allocation to just the 1 byte[24] for embedded or byte[32] for remote.
3. We can return the byte[] directly for getGlobalTransactionId without copying.



> XidImpl implementations can optimize some byte[] allocations
> ------------------------------------------------------------
>
>                 Key: ISPN-9778
>                 URL: https://issues.jboss.org/browse/ISPN-9778
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Transactions
>            Reporter: William Burns
>            Priority: Major
>             Fix For: 10.0.0.Alpha2
>
>
> The EmbeddedXid and XidImpl classes show up on profiler for allocating byte[] in a local environment.
> 1. We should be able to remove the branch byte[] completely as well as its accompanying AtomicInteger and just return an empty byte[] that is cached (ie. Util.EMPTY_BYTE_ARRAY).
> 2. We can use the byte[] that is provided from the create method directly in XidImpl, which would reduce our allocation to just the 1 byte\[24\] for embedded or byte\[32\] for remote.
> -3. We can return the byte[] directly for getGlobalTransactionId without copying.-



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the infinispan-issues mailing list