Мой асинхронный скрипт имеет основной цикл, который выполняет 150 000 итераций в секунду на моем локальном компьютере и примерно 180 000 итераций в секунду на экземпляре AWS (Windows AMI, Python 3.7).
Когда я ввожу time.sleep (1 / X) в этот цикл, мне удается красиво его настроить на локальном хосте. Пример:
while t - tzero < settings.main_loop_seconds:
for singleobject in iterable:
singleobject.process()
t= time.time()
time.sleep(1/10000)
"""with this I expect a maximum of 10000 iterations per second, and with the time lost to 'process' I get an actual 6500 iterations per second. As expected."""
loopcounter += 1
""" I reset this loopcounter to 0 from another thread (using threading.Timer) It is used for logging the number of loops per second.
Проблема теперь, в AWS, тот же код, просто меняющий «X» во времени. Сон (1 / X).
X = 1 # Я получаю 1 цикл в секунду
X = 10 # Я получаю 9 циклов в секунду
X = 100 # Я получаю 64 цикла в секунду
X = 1000 # Я получаю 64 цикла в секунду
X = 10000 # Я получаю 64 цикла в секунду
X = 100000 # Я получаю 64 цикла в секунду
Может кто-нибудь помочь объяснить поведение? Спасибо.