You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2008/07/23 14:03:32 UTC

[jira] Commented: (DERBY-3794) Improve estimates in iapi.services.cache.ClassSize

    [ https://issues.apache.org/jira/browse/DERBY-3794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615978#action_12615978 ] 

Knut Anders Hatlen commented on DERBY-3794:
-------------------------------------------

Copying my observations from DERBY-3731:

I used DTrace to check how much memory that was allocated in JDK 6 on
OpenSolaris 2008.05 and compared the results to what ClassSize would
estimate. I found these differences (assuming that refSize was
correctly set to 4 on 32-bit VMs and 8 on 64-bit VMs):

1) a better name for minObjectSize would be minArraySize, as it
attempts to estimate the fixed overhead for arrays

2) minObjectSize is set to 4*refSize (16 bytes on 32-bit, 32 bytes on
64-bit). The actual value is 3*refSize, but because of 8-byte word
boundaries the size of an empty array is refSize*3+4 == 4*refSize on
32-bit VMs (and the unused space can be exploited, so byte[0] and
byte[4] use the exact same number of bytes). On 64-bit VMs, 3*refSize
matches the word boundaries, so the correct value is 24 (and byte[1]
uses 8 more bytes than byte[0]).

3) booleanSize should be 1, not 4

4) charSize and shortSize should be 2, not 4

5) estimateBaseFromCoefficients() uses minObjectSize as the minimum
object size, whereas it actually is objectOverhead*refSize.

> Improve estimates in iapi.services.cache.ClassSize
> --------------------------------------------------
>
>                 Key: DERBY-3794
>                 URL: https://issues.apache.org/jira/browse/DERBY-3794
>             Project: Derby
>          Issue Type: Improvement
>          Components: Services
>            Reporter: Knut Anders Hatlen
>            Priority: Minor
>
> In a comment in DERBY-3731 I mentioned some discrepancies I found between the estimated memory usage and the actual memory usage. We should try to improve the estimates so that they match what is actually going to be used. The actual memory usage may vary between different platforms, so it would be good to check the actual memory usage on a range of platforms.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.