Opened 12 years ago

Closed 12 years ago

Last modified 11 years ago

#33 closed task (fixed)

Measure the impact of filling stack trace information when performing GO/RETURN/THROW

Reported by: vvoutilainen Owned by: somebody
Priority: minor Milestone: 0.22
Component: other Version: 1.0
Keywords: exception ConditionThrowable go return throw performance Cc:
Parent Tickets:

Description (last modified by ehuelsmann)

Douglas R. Miles reported recently that java.lang.Throwable.fillInStackTrace() can be a very time consuming operation when instantiating Throwables or objects the class of which extends Throwable.

A patch for overriding the fillInStackTrace() function with an empty implementation was created, it seems to be a performance gain, but a benchmark is required. ANSI tests test so many other things that it's difficult to compare the impact of the patch without a test that tests only GO/RETURN/THROW.

Attachments (1)

ConditionThrowable.java.stacktrace.diff (421 bytes) - added by vvoutilainen 12 years ago.
A patch candidate for removing stack trace information generation on ConditionThrowable? instantiation.

Download all attachments as: .zip

Change History (3)

Changed 12 years ago by vvoutilainen

A patch candidate for removing stack trace information generation on ConditionThrowable? instantiation.

comment:1 Changed 12 years ago by vvoutilainen

Resolution: fixed
Status: newclosed

Douglas R. Miles kindly did the measurement by using cl-bench, http://www.cliki.net/Performance%20Benchmarks. The benchmark CTAK showed a huge improvement, so the patch was decided to be good enough to commit. If some developer needs to have stack trace information in GO/RETURN/THROW, the fillInStackTrace override needs to be locally commented out in ConditionThrowable?.java.

Committed in r11412.

comment:2 Changed 11 years ago by ehuelsmann

Description: modified (diff)
Milestone: unscheduled0.22

closed is not 'unscheduled'; moving to the most recently closed milestone.

Note: See TracTickets for help on using tickets.