Нет. Просто человек не понимает, что программа, которая больше размером, не может исполняться быстрее программы, которая меньше размером. В том числе, из-за задержек в загрузке в ОЗУ, процессору также больше нужно загрузить в кэш, а уж если там ещё внутри всякие проверки, инициализации и прочее - так это точно не исполнится быстрее программы, у которой всего этого нет, и которая весит меньше 1 килобайта.
Во-первых может Во-вторых зависит от конкретной ситуации
Не-а, не может.
Ок, не может - так не может
Ну приведи аргументы, а то так скучно.
Ну, почитайте про loop unrolling, например
Смешно. Речь про 300 килобайт. А не про пару десятков байтиков.
И что? Вы думаете на всю программу только один цикл раскручивается? Потом начинается версионирование циклов, потом inline, потом ещё множество чудных дублирований. Можете посмотреть список оптимизаций по -O3
Я про это всё знаю, и там этого нет. Какие циклы вообще в Hello World? Да и перечисленное это не уникальные методы оптимизации, на некоторых процессорах цикл может быть быстрее, чем линейный код. Тут уже зависит от ситуации.
Отлично, я про это и говорю - зависит от ситуации. Сама по себе цифра размера прямым образом не влияет (если мы не говорим про бинари размером в гигабайт)
Ну, вот конкретная ситуация - выше код Hello World. Очевидно, там куча проверок, внутри вшиты библиотеки, и вся эта каша на 350 килобайт точно будет медленнее, чем 150 байтиков с системным вызовом.
Зачем измерять производительность hello world'а? Про 350 КБ - ну да, ужас. Но не ужас-ужас-ужас
Так получилось. Спросили про вес, а тут 350 килобайт на обычном Hello world. Вот и зашла речь.
Только это разные программы. Когда ты будешь ошибку write обрабатывать и рисовать бэктрейсы за 150 рублей байт, тогда и приходи.
И зачем это делать? Конкретно попросили вывести обычную строку в терминал.
А терминал точно терминал? А может это файл, а место на диске кончилось?
Обсуждают сегодня