[ http://issues.apache.org/jira/browse/DERBY-2118?page=all ]

Dyre Tjeldvoll updated DERBY-2118:
----------------------------------

    Attachment: cleanup_flat_profile.txt

I have attached the flat profile listing from my profiler (Sun Studio11 
collect/analyzer) from a run with Dan's clearLimit-patch. Maybe if others also 
see the numbers they can propose other performance improvements.

> Change some boundary checks in ArrayInputStream to ASSERTs to improve 
> performance
> ---------------------------------------------------------------------------------
>
>                 Key: DERBY-2118
>                 URL: http://issues.apache.org/jira/browse/DERBY-2118
>             Project: Derby
>          Issue Type: Improvement
>          Components: Performance
>    Affects Versions: 10.2.1.6
>            Reporter: 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
>
>
> 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.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to