Unverified Perl function performance

Hi,

during a recent study I encountered a "312 - Process timed out." error for the first time.

My own code was relatively simple so I suspect the timeout was caused by the duration of the native sawtooth perl functions.

In my Code I was doing the following:

  • Looping over a list (~80 entries) nine times.

    • In each loop I was calling GETVALUE() once (=720 calls total)

    • In each loop I was calling LISTLABEL() twice (=1440 calls total)

How performance intensitive are those two functions:

  • GETVALUE() (does it (always) fetch something from a database? Based on my database logs I strongly suspect that this is the case.)

  • LISTLABEL() (does it also (always) do internal iteration)

The problem I was trying to solve is:

Given a ranking question (rank top 10) A with list L (which may also be a constructed list), find the list labels of the three items ranked 1st, 2nd and 3rd. This is inside the skip logic of a question, so using the built-in list functions (AIE, AIL, AIG etc.) doesn't seem possible.

As a sidenote: Is the performance of the built-in list functions (significanctly) better for these kind of tasks?

Thanks!

3 replies