#1 by m_hr3
Hi, When I create a new session (using Heroku) in my room with 20+ participants my session configs take minutes to work - I just timed it and it was 3 minutes 40 seconds. In the admin window the room itself never stops 'configuring' however at some point the participants' pages do move on to the experiment. I then can access the session by just clicking away from the room and then going back. I never noticed this issue before when testing with 3-15 participants, but now it's a big issue. What could cause it to be so slow? Thanks for any help or tips.
#2 by Chris_oTree
How many rounds? Also, can you show the code of any creating_session you have?
#3 by m_hr3
I have about 380 rounds, and I have this same creating_session for 4 apps: def creating_session(subsession): session = subsession.session for player in subsession.get_players(): #create the tie budget variable to Rougeuce from it when SL buy ties session = subsession.session players = subsession.get_players() matrix = session.matrix subsession.set_group_matrix(matrix) participant = player.participant participant.N4tie_budget = Constants.tie_budget print(session.demonstrators) if player.id_in_group in session.demonstrators: participant.type = 'IL' player.type = participant.type else: participant.type = 'SL' player.type = participant.type if subsession.round_number == 1: for group in subsession.get_groups(): #get the list of True and False that indicate if Rouge (true) or Bleu (false) is the #highest payoff choice for the round. list_best_option_for_block = ([True, False]) bestchoices = list(random.choices(list_best_option_for_block, k=5)) session.N4best = bestchoices #save the list, which is the same for all participants, in the session var if subsession.round_number == 1: for player in subsession.get_players(): participant = player.participant copy_tie_choice_order = Constants.tie_choice_order.copy() random_list_order = random.sample(copy_tie_choice_order, k=len(copy_tie_choice_order)) participant.N4tie_choices_treatment = random_list_order if participant.type == 'SL': participant.N4_choice_condition_1 = participant.N4tie_choices_treatment[0] participant.N4_choice_condition_2 = participant.N4tie_choices_treatment[1] participant.N4_choice_condition_3 = participant.N4tie_choices_treatment[2] participant.N4_choice_condition_4 = participant.N4tie_choices_treatment[3] participant.N4_choice_condition_5 = participant.N4tie_choices_treatment[4]
#4 by Chris_oTree
That code contains nested loops. you should get rid of them.
#5 by Chris_oTree
Actually what I really mean is that you have a nested call to subsession methods like .get_players() and .set_group_matrix() inside a for loop. they should be outside the for loop. you only need to do them once.
#6 by m_hr3
Hi, thanks a lot for your response. I didn't have a chance to fix it yet but something I also noticed now is each deployment takes longer and longer - first one was 3 min, and now a fifth one took 11 minutes. Can this be an issue with not having bought powerful enough Heroku applications? Thanks a lot!!
#7 by Chris_oTree
It should be done within seconds. Check the Heroku status page. There was a forum post about it yesterday.