Ticket #9364 (closed: fixed)

Opened 6 years ago

Last modified 5 years ago

CopyInstrumentParameters performance & efficiency

Reported by: Alex Buts Owned by: Alex Buts
Priority: major Milestone: Release 3.2
Component: Framework Keywords:
Cc: Blocked By: #9082
Blocking: Tester: Nick Draper

Description

This is actually continuation of the ticket #9082

The fix provided in #9082 should work but

1) instrument parameters values are copied as strings when shared pointer to the parameter is available.

2) Parameter map is copied& reallocated twice when new map is there.

3) Algorithm performance test.

4) Merging the parameter map option? (it may be another ticket)

To complete the #9082 properly, at least 1-3 should be fixed.

Change History

comment:1 Changed 6 years ago by Alex Buts

refs #9364 Performance test

Changeset: 5ee366d160901d6b88d40f8e2e68fc233600d91f

comment:2 Changed 6 years ago by Alex Buts

refs #9364 Working performance test

Changeset: d7d614ed1027f5ff9e2357f49273018baf2c24af

comment:3 Changed 6 years ago by Nick Draper

  • Status changed from new to assigned

comment:4 Changed 6 years ago by Alex Buts

  • Status changed from assigned to inprogress

refs #9364 Add parameter through pointer implemented

and deployed within CopyInstrumentParameters. The map is now copy of itself ? (clear way to introduce cow_ptr to map)

Changeset: ae9556712b19e228518a579702259742375ee74d

comment:5 Changed 6 years ago by Alex Buts

refs #9364 clone method on Parameter and test for it.

Changeset: a46f4cd242591995c50c36b0c0751cc214940450

comment:6 Changed 6 years ago by Alex Buts

refs #9364 CopyInstrumentParameters clones parameters rather then

recreates it through strings

Changeset: 9e500a45ec039458a48a087d9d71a1ac023c0408

comment:7 Changed 6 years ago by Alex Buts

refs #9364 Avoid copying second parameter map.

swap contents of new map with contents of old map instead.

Changeset: a8ac6eed0f2ff83aba782bb866bc8ce979218954

comment:8 Changed 6 years ago by Alex Buts

refs #9364 Comments bla bla

Changeset: 275e70994ccf8c7c0c58a8db6737339c9f952352

comment:9 Changed 6 years ago by Alex Buts

  • Status changed from inprogress to verify
  • Resolution set to fixed

I've implemented 1-3 and seen 5-fold increase in performance test speed in debug mode.

It is also very simple to make shallow copy of the instrument parameters but I am not sure if this is reasonable/needed.

4) is another not entirely trivial ticket so I am leaving it for a future if anybody actually need this functionality.

Test by code review or running testing script from #9082. All tests&functionality should not be affected.

Last edited 6 years ago by Alex Buts (previous) (diff)

comment:10 Changed 6 years ago by Nick Draper

  • Status changed from verify to verifying
  • Tester set to Nick Draper

comment:11 Changed 6 years ago by Nick Draper

  • Status changed from verifying to closed

Merge remote-tracking branch 'origin/feature/9364_CopyInstrumentPar'

Full changeset: 1669e65dc8194a70978468ac2063b372bd4bc502

comment:12 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 10207

Note: See TracTickets for help on using tickets.