Size: a a a

2020 July 10

A

Azamat in Python KZ
Кir
код не просто меньше, но и быстрее выполняется, технически там надо было ещё вместо уножения на 2 использовать побитный сдвиг влево 🙂
кстати побитный сдвиг в CPython на самом деле далеко не всегда быстрее. это из-за того, что инты в питоне - на самом деле массивы (поэтому инты в питоне могут быть любого размера).

при этом при умножении на маленькие чилса, а маленькие это вроде как те которые помещаются в обычный сишный long, т.е. < 2^32, - они помножаются как обычное умножение, а у бит шифта такой оптимизации нет.

Я прото реально столкнулся что бит шифты были медленне умножения и поэтому запомнил

Даже вот нашел в сорцах:

https://github.com/python/cpython/blob/v3.6.7/Objects/longobject.c#L3578

/* fast path for single-digit multiplication */
источник

К

Кir in Python KZ
вообще это нее было ответом на самый первый вопрос, это ответление и ответ был адресован конкретному человеку, мне было интересно узнать так лучше читабельность или нет
источник

A

Azamat in Python KZ
Кir
print([*range(0, 101, 2), *range(101, 1000, 2)])

:)
если чисто про производительность наверное это лучше всего
источник

RQ

Rawan Qurmet in Python KZ
Кir
вообще это нее было ответом на самый первый вопрос, это ответление и ответ был адресован конкретному человеку, мне было интересно узнать так лучше читабельность или нет
я понял, вне контекста плюсанул как абсолютная правда
источник

A

Azamat in Python KZ
а вообще сам писал бы первый вариант с ифами
источник

К

Кir in Python KZ
Azamat
кстати побитный сдвиг в CPython на самом деле далеко не всегда быстрее. это из-за того, что инты в питоне - на самом деле массивы (поэтому инты в питоне могут быть любого размера).

при этом при умножении на маленькие чилса, а маленькие это вроде как те которые помещаются в обычный сишный long, т.е. < 2^32, - они помножаются как обычное умножение, а у бит шифта такой оптимизации нет.

Я прото реально столкнулся что бит шифты были медленне умножения и поэтому запомнил

Даже вот нашел в сорцах:

https://github.com/python/cpython/blob/v3.6.7/Objects/longobject.c#L3578

/* fast path for single-digit multiplication */
возможно, такое именно на практике и не в цикле до 100 заметно 🙂
источник

RQ

Rawan Qurmet in Python KZ
readability counts ;)
источник

RQ

Rawan Qurmet in Python KZ
Although practicality beats purity 🤫
источник

I

Itachi in Python KZ
Azamat
кстати побитный сдвиг в CPython на самом деле далеко не всегда быстрее. это из-за того, что инты в питоне - на самом деле массивы (поэтому инты в питоне могут быть любого размера).

при этом при умножении на маленькие чилса, а маленькие это вроде как те которые помещаются в обычный сишный long, т.е. < 2^32, - они помножаются как обычное умножение, а у бит шифта такой оптимизации нет.

Я прото реально столкнулся что бит шифты были медленне умножения и поэтому запомнил

Даже вот нашел в сорцах:

https://github.com/python/cpython/blob/v3.6.7/Objects/longobject.c#L3578

/* fast path for single-digit multiplication */
А в какой продакшн задаче нужен был битовый сдвиг?
источник

A

Azamat in Python KZ
Я не помню, что-то пытался оптимизировать, а в итоге стало медленее
источник

C

Coronavirus in Python KZ
Rawan Qurmet
новичку вообще академически оформленный код нужно показывать, вместо list comprehension например)
Ну и "make it work, make it right, make it fast" никто не отменял :)
источник

I

Itachi in Python KZ
Azamat
Я не помню, что-то пытался оптимизировать, а в итоге стало медленее
Профайлинг что показал?
источник

К

Кir in Python KZ
вообще забавно, был вопрос и я первый откликнулся, написал вариант решения, но не само решение https://t.me/python_kz/22882
потом уже в сторону отошли, хотя я походу ещё сылку на синтаксис и четыре пробела кинул, но критика подтянулась позже 🙂 что же вы ничего не предложили то? :)))
источник

RQ

Rawan Qurmet in Python KZ
Rawan Qurmet
Although practicality beats purity 🤫
источник

A

Azamat in Python KZ
Itachi
Профайлинг что показал?
профайлинг показал что такая-то функция медленная. мне показалось что могу битшифтами улучшить и обломался. деталей не помню это было лет 5 назад
источник

RQ

Rawan Qurmet in Python KZ
JIT it)
источник

I

Itachi in Python KZ
По подробнее
источник

AN

Aidana Nurtaza in Python KZ
Кir
вообще забавно, был вопрос и я первый откликнулся, написал вариант решения, но не само решение https://t.me/python_kz/22882
потом уже в сторону отошли, хотя я походу ещё сылку на синтаксис и четыре пробела кинул, но критика подтянулась позже 🙂 что же вы ничего не предложили то? :)))
Вы извините, что я так долго реагирую. Я просто читала статьи и пыталась код понять, перед тем, как ответить. Спасибо вам за feedback !!!
источник

A

Azamat in Python KZ
Кir
вообще забавно, был вопрос и я первый откликнулся, написал вариант решения, но не само решение https://t.me/python_kz/22882
потом уже в сторону отошли, хотя я походу ещё сылку на синтаксис и четыре пробела кинул, но критика подтянулась позже 🙂 что же вы ничего не предложили то? :)))
да это был лучший вариант для девушки
источник

RQ

Rawan Qurmet in Python KZ
Itachi
По подробнее
источник