Уведомления

Группа в Telegram: @pythonsu

#1 Май 8, 2014 19:27:45

yastreboff
Зарегистрирован: 2014-05-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему 3.4 медленнее 2.7 в данном случае?

Я начинающий. Изучаю, привыкаю.
Вопрос вот такой возник. Почему в данном примере Python 3.4 выполняется медленнее в два раза, нежели в версии 2.7 ?

import time
start = time.time()
def main():
    r = 0
    for i in range(0, 10000):
        for j in range(0, 10000):
            r = (r + (i * j) % 100) % 47
    print("answer: ", r)
main()
finish = time.time()
print (finish - start)

Результаты у меня такие:

3.4 - 22.98 секунды
2.7 - 11.23 секунды (если поменять на xrange) - 10.8 секунды

Может в 3-ей ветке правильнее по-другому делать?

Офлайн

#2 Май 9, 2014 10:37:58

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Почему 3.4 медленнее 2.7 в данном случае?

могу только предположить, потому что в python2 целые числа могут быть int или long, в python3 все целые long

Офлайн

#3 Май 9, 2014 11:14:27

yastreboff
Зарегистрирован: 2014-05-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему 3.4 медленнее 2.7 в данном случае?

Да, вы оказались правы. Если для версии 2.7 обьявить переменную так:

r = long(0)
то, скрипт начинает выполнятся с таким же временем, как и в версии 3.4

Спасибо!

Отредактировано yastreboff (Май 9, 2014 11:23:26)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version