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

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

    Derby Info:   (was: [Patch Available])

I'm taking the hint, and removing the patch available flag. If someone else has 
ideas about how to optimize this part of the code
I'd love to hear about it.

Wrt. system cpu: I think that's strange too, but that is what the profiler 
says. Maybe it is wrong. (it attributes the system cpu (and most of the user 
cpu too) to the byte code line doing getfield #11, which I think is 
ArrayInputStream.end

> 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: 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