You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Francesco Nigro (Jira)" <ji...@apache.org> on 2021/01/05 14:09:00 UTC

[jira] [Updated] (ARTEMIS-3051) Fix MessageReferenceImpl::getMemoryEstimate

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

Francesco Nigro updated ARTEMIS-3051:
-------------------------------------
    Description: 
MessageReferenceImpl::memoryOffset is used on MessageReferenceImpl::getMemoryEstimate: it reports 64 bytes.

[https://github.com/openjdk/jol] is reporting 72 bytes for OpenJDK 64 bit using COOPS and 8 bytes alignment, that's very common, and that's a more accurate estimated footprint value.

To be honest, a full-fat 64 bit JVM would use 112 bytes instead, but that could be improved in a bigger follow-up PR.

 

The interesting thing is that paging will be positively affected by this change, because the broker won't under-estimate the memory footprint of many references, triggering paging sooner.

 

  was:
MessageReferenceImpl::memoryOffset is used on MessageReferenceImpl::getMemoryEstimate: it reports 64 bytes.

[https://github.com/openjdk/jol] is reporting 72 bytes for OpenJDK 64 bit using COOPS and 8 bytes alignment, that's very common, and that's a more accurate estimated footprint value.

To be honest, a full-fat 64 bit JVM would use 112 bytes instead, but that could be improved in a bigger follow-up PR.

 


> Fix MessageReferenceImpl::getMemoryEstimate
> -------------------------------------------
>
>                 Key: ARTEMIS-3051
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3051
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.16.0
>            Reporter: Francesco Nigro
>            Assignee: Francesco Nigro
>            Priority: Minor
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> MessageReferenceImpl::memoryOffset is used on MessageReferenceImpl::getMemoryEstimate: it reports 64 bytes.
> [https://github.com/openjdk/jol] is reporting 72 bytes for OpenJDK 64 bit using COOPS and 8 bytes alignment, that's very common, and that's a more accurate estimated footprint value.
> To be honest, a full-fat 64 bit JVM would use 112 bytes instead, but that could be improved in a bigger follow-up PR.
>  
> The interesting thing is that paging will be positively affected by this change, because the broker won't under-estimate the memory footprint of many references, triggering paging sooner.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)