Ticket #8666 (closed: wontfix)

Opened 7 years ago

Last modified 5 years ago

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.

Change History

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:5 Changed 7 years ago by Michael Reuter

  • Status changed from verifying to closed

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

comment:7 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 9510

Note: See TracTickets for help on using tickets.