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

Myrna van Lunteren closed DERBY-2118.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 10.3.0.0
         Assignee: Dyre Tjeldvoll

Assigning to Dyre, although this is an example of open-source team work, with 
Dyre, Dan, and Knut Anders contributing...

> Change some boundary checks in ArrayInputStream to ASSERTs to improve 
> performance
> ---------------------------------------------------------------------------------
>
>                 Key: DERBY-2118
>                 URL: https://issues.apache.org/jira/browse/DERBY-2118
>             Project: Derby
>          Issue Type: Improvement
>          Components: Performance
>    Affects Versions: 10.2.1.6
>            Reporter: Dyre Tjeldvoll
>            Assignee: Dyre Tjeldvoll
>            Priority: Trivial
>             Fix For: 10.3.0.0
>
>         Attachments: cleanup_flat_profile.txt, 
> d2018_clearlimit_cleanup_diff.txt, derby-2118.diff, derby-2118.stat, 
> derby-2118.v2.diff, setlimit.diff
>
>
> Profiling shows that a significant amount of CPU is spent doing boundary 
> checking in ArrayInputStream.setPosition() and ArrayInputStream.setLimit(). 
> These checks appear to be there to detect error conditions, so it seems more 
> appropriate to make them ASSERTs. Especially since they are so expensive.
> DTrace analysis seems to confirm that these methods get called very 
> frequently:
> Knut Anders Hatlen wrote the following in a message on derby-dev:
> FYI, I just ran the DERBY-1961 test clients and traced them with a
> DTrace script that printed how often each method was called. For the
> join client, ArrayInputStream.setPosition() was the most frequently
> called method (43837.7 calls/tx). For the single-record select client,
> it was third (58.4 calls/tx), only beaten by Object.<init>() and
> DDMWriter.ensureLength(). I think this means that setPosition() is the
> engine method that is most frequently called, at least in read-mostly
> transactions.  ArrayInputStream.setLimit() also appeared near the top
> of the list. See http://wiki.apache.org/db-derby/Derby1961MethodCalls
> for the details.

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

Reply via email to