This section displays the results of Sardana performance tests. The measurements have been done for various reasons:

- It has to be verified that the Sardana performance is satisfactory.
- When setting-up a new experiment technique, the results
mentioned below can be used to decide whether Sardana
is sufficiently fast. The alternative is always a hardware
controlled continuous scan.
- In case a beamline scientist is in doubt whether the
online control system is performant, he can execute
scans that are described below and compare the outcome.
- It is interesting to see how the Sardana numbers compare
with another program.

The first series of scans are performed with a dummy motor (exp_dmy01) in order to avoid any delays caused by the motor movements. The parameters are:

exp_dmy01 - exp_dmy01.velocity == 10000 - exp_dmy01.acceleration == 1

It appears that the results are basically independent of the velocity and acceleration values.

Here are the results for relative scans in the range from -0.1, 0.1. The number of points is 101 and the sample time is 0.1s.

Scan command: %dscan exp_dmy01 -0.1 0.1 100 0.1 Elapsed times for different measurement groups (3.3.2020): d1_c01 18.7s (46%) d1_c01 - d1_c04 20.2s (50%) d1_c01 - d1_c12 23.5s (57%) d1_c01, mca-2048 38.3s (74%) d1_c01, mca-4096 47.9s (79%) d1_c01, mca-8192 67.9s (85%) d1_c01, i-petra: 19.6s (49%) d1_c01 - d1_c12, mca-2048 42.2s (76%) %dscan exp_dmy01 -0.1 0.1 200 0.1 d1_c01 36.7s (45%) %dscan exp_dmy01 -0.1 0.1 400 0.1 d1_c01 74.0s (46%)

The scan executed with a measurement group containing one only one counter (d1_c01) takes 18.7s. These are the contributions:

- The total sample time is 10.1s.
- The time it takes to rel-move exp_dmy01 100 times from -0.1 to 0.1 is 2.0s. This has been measured with the macro 4.6.4.
- From the lines containing the results for 4 and 12 counters we derive that each counter adds about 0.5s (for 101 scan points) to the elapsed time.
- Subtracting the numbers mentioned to far we conclude that we have a 'system scan overhead time' of 7s.

If we repeat the scan with 200 and 400 points, we find a linear scaling.

So far only dummy scans have been performed. The tests have also been done with a real motor. The parameters are:

d1_mot66 configured like haspp09, th, p09/motor/exp.05 - conversion -40000 - acceleration 25000 - BaseRate 2000 - slewRate 25000 - unitBacklash 0.1

It takes 19s to rel-move d1_mot66 in 100 steps from -0.1 to 0.1.

The elapsed scan times are (3.2.2020):

%timedMacro "dscan d1_mot66 -0.1 0.1 100 0.1" d1_c01 24.4s (58%) d1_c01 - d1_c04 26.2s (61%) d1_c01 - d1_c12 29.9s (66%) d1_c01, mca-2048 44.7s (77%) d1_c01, mca-4096 54.1s (81%) d1_c01, mca-8192 74.5s (87%) d1_c01, i-petra: 25.7s (61%) d1_c01 - d1_c12, mca-2048 49.1s (79%) %timedMacro "dscan d1_mot66 -0.1 0.1 200 0.1" d1_c01 44.7s (55%) %timedMacro "dscan d1_mot66 -0.1 0.1 400 0.1" d1_c01 86.7s (54%)

Conclusions:

- If we take the motor move times into account, we see that the results of the dummy and the real motor scans are roughly in agreement.
- The Sardana 'system scan overhead time' is in the order of 40% for dummy scans. For real motor scans this contribution is insignificant.