Я был удивлен, что только для этой действительно простой программы (скомпилированной для x86_64):
Код: Выделить всё
#include
auto main() -> int {
std::println("Hello World");
return 0;
}
оптимизатор не может помочь. Будет ли он скомпилирован с -O0 или -O3, результат будет примерно одинаковым....
При использовании iostream:
Код: Выделить всё
#include
auto main() -> int {
std::cout Я получаю двоичный файл из ~15 строк ассемблера с -O0.
Я нахожу все это действительно запутанным...
Я имею в виду, что иметь более короткий двоичный файл с меньшей оптимизацией кажется немного неуместным....
А когда println генерирует 5000 строк ассемблера, это кажется слишком сложным.
На самом деле мне интересно, можно ли вообще использовать println....
Я знаю, что это похоже на 2 вопроса в одном посте, но все это меня очень смутило....
Заранее спасибо
Подробнее здесь: [url]https://stackoverflow.com/questions/79893456/is-it-normal-that-stdprintln-bloats-my-binary-is-it-normal-that-o0-binary-i[/url]
Мобильная версия