psychopy.org | Reference | Downloads | Github

Do I need pylink's beginRealTimeMode() in PsychoPy?


#1

Hi there,

the pylink examples include things like beginRealTimeMode () or gc.disable() to give the experiment process top priority and to suppress garbage collection during time critical phases in the experiment.

My question is: Is this redundant to functions already implemented in PsychoPy? Or could/should I use them?

Cheers
Gernot


#2

beginRealTimeMode() throws an error message in our lab so I disabled it (probably due to administration rights). Everything seems to work fine without it but I would recommend you to leave it enabled unless it produces an error message.

If you need a code example of an eyetracking experiment working in PsychoPy v1.84.2 please let me know.


#3

Hi Mario,
thanks for your answer and your kind offer. I actually got an eye-tracking experiment working under PsychoPy using pylink. It would be great to see your solution though (of course I can send you mine also).

In the meantime it seems that I found the answer to my question by my own, even though the evidence is somewhat indirect.

In iohub I found:
setPriority(level=‘normal’, disable_gc=False)
See Computer.setPriority documentation, where current process will be the iohub process.

So the answer to my question seems to be: yes, I will need to set high priority, and also to disable garbage collection when doing experiments in python, because this is not implemented as a default behavior in PsychoPy but has to explicitly called when needed.

I must admit though that my technical knowledge suffices to understand what these functions do in principle, but that I do not really know whether these are needed in all time-critical experiments or not, or under which circumstances these settings are particularly important or unimportant.