Вопрос по опт. компиляторам

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
18 Фев 2022
Сообщения
588
Реакции
99
Знатоки, как компилятор будет обрабатывать подобную программу? (речь о релиз билде программы с 2+ левелом оптимизации, дебаг не учитываем):
pseudocode:
Expand Collapse Copy
var name = "govard";

print("{name}")


Будет ли он сохранять переменную name в памяти, или просто сделает такое, логичное как по мне преобразование:
pseudocode:
Expand Collapse Copy
print("govard")

Если не сделает, то почему? Разве это не будет эффективнее с точки зрения оптимизации?

Я могу понять, почему например вот такая переменная будет сохранена в памяти:
pseudocode:
Expand Collapse Copy
var hard_calculations = 2 * 4313 / 413 * 134 + 4341 / 3;


print("{hard_calculations}")
Всегда приятнее найти готовое вычисленное значение где-то в памяти, чем напрягать процессор. Но, что на счет строковых литералов или подобных простых, возможно даже одноразовых переменных выступающих в роли алиасов?
 
Последнее редактирование:
вопрос надо конкретизировать средой выполнения, AOT компилятором.

а вообще:
на CPU оптимизируют выбором алгоритма(где появится минимальная сложность выполнения) под конкретную задачу ПОСТФАКТУМ(для этого функционал взаимодействия инкапсулируют), а не просчитываем и инлайном "очевидных" констант, которые разумеется за тебя сделает любой нормальный jit/aot.
 
Назад
Сверху Снизу