#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 )
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)
Change History (3)
Changed 17 years ago by
| Attachment: | ConditionThrowable.java.stacktrace.diff added |
|---|
comment:1 Changed 17 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
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 15 years ago by
| Description: | modified (diff) |
|---|---|
| Milestone: | unscheduled → 0.22 |
closed is not 'unscheduled'; moving to the most recently closed milestone.
A patch candidate for removing stack trace information generation on ConditionThrowable? instantiation.