Могу ли я воссоздать код, используя eval, улучшит ли он производительность? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть бесконечный цикл, использующий время true в конце этого цикла, я всегда проверяю, является ли это первая итерация цикла, если это первая итерация, продолжить, если это вторая и находится в режиме ожидания (1200)

Интересно, каков наилучший способ избежать проверки каждой итерации условия if?это условие истинно только один раз, и я буду запускать цикл 10 ^ 10000 раз.

Есть ли выигрыш в производительности от использования eval следующим образом:

crazy = r""" crazy = "sleep(120)" """

while True:
    // do some code
    eval(crazy)

Это перезапишет сумасшедшую переменную впервый цикл, позже будет выполняться только сон.Я знаю, что это небезопасно, но однажды умный код станет кодом, который напишет его сам.

1 Ответ

0 голосов
/ 19 февраля 2019

Я сомневаюсь, что eval будет более эффективным, чем if.

Если вы хотите избежать «если», тогда будет работать следующий код.

n=0
while True:
    // do some code
    sleep(n)
    n=1200

Или полностью удалить эту строку

doSomeCode()
while True:
    doSomeCode()
    sleep(1200)

Но, честно говоря, если вы не знаете, что у вас есть определенная проблема с производительностью, это не маскируется тем, что вы зацикливаетесь толькораз в 20 минут вы, вероятно, преждевременно оптимизируете.

...