Size: a a a

2021 March 08

N

Nikolay in Moscow Python
источник

N

Nikolay in Moscow Python
источник

ST

Storm Trooper in Moscow Python
Прикольный графики
источник

PS

Peter Sovietov in Moscow Python
def g(): return 3**100
>>> import dis
>>> dis.dis(g)
 1           0 LOAD_CONST               1 (3)
             2 LOAD_CONST               2 (100)
             4 BINARY_POWER
             6 RETURN_VALUE
источник

N

Nikolay in Moscow Python
Peter Sovietov
def g(): return 3**100
>>> import dis
>>> dis.dis(g)
 1           0 LOAD_CONST               1 (3)
             2 LOAD_CONST               2 (100)
             4 BINARY_POWER
             6 RETURN_VALUE
а могло бы посчитать еще в конпеляторе
источник

PS

Peter Sovietov in Moscow Python
Nikolay
а могло бы посчитать еще в конпеляторе
Сейчас объяснят, что это бы ограничило динамичность языка. Вдруг кто-то захочет переопределить ** над числами!
источник

VM

Vladimir Manatskov in Moscow Python
Nikolay
а могло бы посчитать еще в конпеляторе
А есть проекты, которые оптимизируют питон-код/байт-код
источник

VM

Vladimir Manatskov in Moscow Python
Типа, по набору стандартных паттернов упрощают
источник

VM

Vladimir Manatskov in Moscow Python
Типа, если байнари павер с конст конст вызван
источник

N

Nikolay in Moscow Python
Peter Sovietov
Сейчас объяснят, что это бы ограничило динамичность языка. Вдруг кто-то захочет переопределить ** над числами!
дык вроде в питоне его нельзя переопределить так просто
источник

PS

Peter Sovietov in Moscow Python
Nikolay
дык вроде в питоне его нельзя переопределить так просто
Вроде бы. Но все равно! :)
источник

N

Nikolay in Moscow Python
Vladimir Manatskov
А есть проекты, которые оптимизируют питон-код/байт-код
ну да, numba
источник

VM

Vladimir Manatskov in Moscow Python
Аа
источник

VM

Vladimir Manatskov in Moscow Python
Так вот она для чего
источник

VM

Vladimir Manatskov in Moscow Python
А какие-то ещё оптимизации она умеет? Типа разворачивание хвостовой рекурсии, или вместо цикл компрехеншн сделать, глобальную переменную захватить итд?
источник

PS

Peter Sovietov in Moscow Python
>>> def g(): return 2**32 - 1

>>> dis.dis(g)
 1           0 LOAD_CONST               1 (4294967295)
             2 RETURN_VALUE

>>> def g(): return 2**128 - 1

>>> dis.dis(g)
 1           0 LOAD_CONST               1 (2)
             2 LOAD_CONST               2 (128)
             4 BINARY_POWER
             6 LOAD_CONST               3 (1)
             8 BINARY_SUBTRACT
            10 RETURN_VALUE
источник

PS

Peter Sovietov in Moscow Python
То есть не все совсем плохо. Главное, не используйте здесь math.pow :)
источник

VM

Vladimir Manatskov in Moscow Python
Питон, наверное, один из немногих современных таких популярных языков, где от того, как ты конкретно напишешь по сути одно и то же, сильно зависит производительность
источник

VM

Vladimir Manatskov in Moscow Python
Обидно, что нет оптимизаций из коробки
источник

VM

Vladimir Manatskov in Moscow Python
А в pypy там же llvm, он же оптимизирует что-то? Внутренний байт-код/представление llvm
источник