Найти - Пользователи
Полная версия: скорость потрохов python 3
Начало » Python для новичков » скорость потрохов python 3
1
doza_and
(python 2.7.7 vs python 3.3.3)
python -mtimeit “for i in xrange(10000):pass”
1000 loops, best of 3: 226 usec per loop
python -mtimeit “for i in range(10000):pass”
1000 loops, best of 3: 320 usec per loop
python3 -mtimeit “for i in range(10000):pass”
1000 loops, best of 3: 404 usec per loop

Два вопроса
1. А почему такая разница? Это надо постараться чтобы вдвое снизить производительность.
2. В реальных проектах бывало что снижение скорости тройки было важно или неприятно?
Singularity
python -mtimeit "for i in xrange(10000):pass"
python -mtimeit "for i in range(10000):pass"
python3 -mtimeit "for i in range(10000):pass"
У меня
  ~  python3 -mtimeit "for i in range(10000):pass"
1000 loops, best of 3: 719 usec per loop
  ~  python -mtimeit "for i in range(10000):pass"
1000 loops, best of 3: 621 usec per loop
  ~  python -mtimeit "for i in xrange(10000):pass"
1000 loops, best of 3: 425 usec per loop
  ~  
Singularity
doza_and
python -mtimeit "for i in xrange(10000L):pass"
Грят если сделать лонг то должно тупить, но у меня не тупит как в 3.3.2

http://stackoverflow.com/questions/23453133/is-there-a-reason-python-3-enumerates-slower-than-python-2
http://stackoverflow.com/questions/8097408/why-python-is-so-slow-for-a-simple-loop
http://stackoverflow.com/questions/869229/why-is-looping-over-range-in-python-faster-than-using-a-while-loop
doza_and
У меня тоже не тупит 10000L. Большое спасибо за информацию.
simple_user
doza_and
У меня тоже не тупит 10000L. Большое спасибо за информацию.
буквочку ‘L’ удалите, и вместо xrange использовать range

P.S.: у меня тоже в 2 рада дольше…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB