[ http://issues.apache.org/jira/browse/DERBY-2118?page=comments#action_12455445 ] Daniel John Debrunner commented on DERBY-2118: ----------------------------------------------
The tests pass for the clearLimit() changes and I performance changes for the select test ranging from -0.70% to +2.44%. Sometimes I seem to have trouble getting consistent numbers out of the test from DERBY-1961, even with an idle machine. > 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
