db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dyre Tjeldvoll (JIRA)" <j...@apache.org>
Subject [jira] Created: (DERBY-2118) Change some boundary checks in ArrayInputStream to ASSERTs to improve performance
Date Mon, 27 Nov 2006 10:02:21 GMT
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:
            Reporter: Dyre Tjeldvoll
            Priority: Trivial
             Fix For:

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


View raw message