Ticket #8666 (closed: wontfix)
Investigate CalibrateRectangularDetector_Test.PG3Calibration system test slowdown
Reported by: | Russell Taylor | Owned by: | Russell Taylor |
---|---|---|---|
Priority: | major | Milestone: | Release 3.1 |
Component: | Framework | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: | Michael Reuter |
Description
It appears that #8634 has slowed down the aforementioned test by a notable amount (see attachment). Try and figure out why and rectify.
Attachments
Change History
Changed 7 years ago by Russell Taylor
- Attachment SystemTests.CalibrateRectangularDetector_Test.PG3Calibration.runtime.v.revision.png added
comment:1 Changed 7 years ago by Russell Taylor
FunctionFactoryImpl::getFunctionNames() is getting called a lot during this test (from the init method of FindPeaks and GetDetectorOffsets). It appears that in this scenario the mutex is more expensive than the old way of creating all the functions over and over.
The simplest solution would be to make the list of function names a static variable in FindPeaks & GetDetectorOffsets, but this wouldn't help the next person who comes along and uses the FunctionFactory in the same way. A better solution would be to make the caching more efficient - perhaps by using a read lock.
comment:2 Changed 7 years ago by Russell Taylor
- Status changed from new to inprogress
Re #8666. Use static variables for the list of function names.
This should improve performance in the scenario where these algorithms are called as child algorithms within a tight loop.
Changeset: 990c825ed52d44600d68a189ab61d1bd8ad5a553
comment:3 Changed 7 years ago by Russell Taylor
- Status changed from inprogress to verify
- Resolution set to wontfix
Although I can reproduce it (but with a smaller difference), I can't track down what caused this. The above commit made no difference which is a strong hint (confirmed by subsequent local investigations) that it's not a direct result of the previous changes. If you look at what changed on the previous speedup (around iteration 570), that was in no way related to the code being run here either so it seems it's just sensitive/flaky.
Tester: Don't try and merge the branch - it's gone. Just close the ticket.
comment:4 Changed 7 years ago by Michael Reuter
- Status changed from verify to verifying
- Tester set to Michael Reuter
comment:6 Changed 7 years ago by Russell Taylor
Re #8666. Use static variables for the list of function names.
This should improve performance in the scenario where these algorithms are called as child algorithms within a tight loop.
Changeset: 990c825ed52d44600d68a189ab61d1bd8ad5a553