170 похожих чатов

А интерпретатор никак не оптимизирует код? Например, если я сделаю: def

f():
return 1+2
for _ in range(1000):
print(f())
У меня 1000 раз будет выполняться сложение, или интерпретатор при прочтении функции поймёт, что я две константы складываю, которые невозможно никак изменить, один раз выполнит сложение и просто заменит на return 3?

18 ответов

19 просмотров

Нет

S0ZDATEL- Автор вопроса

А как я здесь изменю?

узнай про dis.dis

Ну конкретно в этом случае сложения двух литералов да, вообще нет

как на счет писать на С ?

S0ZDATEL- Автор вопроса
Alex
как на счет писать на С ?

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

S0ZDATEL
Да я понимаю что язык интерпретируемый, а не компи...

>>> def add(): ... return 1 + 2 ... >>> import dis >>> dis.dis(add) 2 0 LOAD_CONST 1 (3) 2 RETURN_VALUE

S0ZDATEL- Автор вопроса
Tishka17
Нет

Я просто сначала вот этому поверил...

S0ZDATEL- Автор вопроса
Alex
>>> def add(): ... return 1 + 2 ... >>> import d...

Вот это что тогда? Я вижу здесь "загрузить константу и вернуть", никакой второй константы, никакого сложения.

S0ZDATEL
Вот это что тогда? Я вижу здесь "загрузить констан...

это примитивная оптимизация при генерации байткода, ничего более. то есть это как бы оптимизация, но вообще в питоне их практически нет.

S0ZDATEL- Автор вопроса
Tishka17
Нет

Просто я, когда это прочитал, подумал, что он даже на такое не способен.

S0ZDATEL- Автор вопроса
Tishka17
Ну вызов функции все равно остался

Это да, но сложения не производится.

S0ZDATEL
Это да, но сложения не производится.

Полагаю только потому что литералы были

S0ZDATEL
Это да, но сложения не производится.

зато строки оптимизирует, и хранит одинаковые в одном месте

Дмитро Козак
зато строки оптимизирует, и хранит одинаковые в од...

нет. опять таки литералы — это не все строки.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта