> Я привёл не "маразмы", а наследие, от которого архитектура от Интел должна
> была нас избавить.Она должна была избавить отнюдь не вас, уважаемый, с вашим домашним вычислительным
центром из игрового писюка, а серверный сегмент. И отчасти избавила.
> Сложность оптимизирующего компилятора зашкаливает: зашкаливает для вас.
> Потому что прочими он был написан.
Аргумент человека, который явно не в курсе.
> Обращения к числам: программирование вообще точная наука вообще то. Обращение к памяти
> тоже требуется "нежнейшее" и выбирать какие переменные суммировать / какие функции
> с какими параметрами вызывать тоже (иначе получите ерунду).
Дело не получаемой в результате "ерунде". Видимо, уважаемый Ваня опять-таки
не в курсе, что Итаник ряд вполне корректных с точки зрения спецификаций
IEEE случаев арифметики с вещественными числами не реализует на аппаратном
уровне. При не особо хитрых аргументах, скажем, умножения двух вещественных
чисел (которые очень даже могут получиться как результат предыдущих
вычислений, и которые не являются специальными случаями типа Inf и NaN)
процессор вместо выдачи результата инициирует аппаратное исключение, которое
ОС должна обработать путем вызова программного блока эмуляции данной операции
через целочисленную арифметику.
Последствия для производительности, я думаю, очевидны. Усложнение программирования
(если на производительность не совсем начхать) - я думаю, тоже.
Тот же x86, к слову, щелкает такие вычисления молча и с завидной скоростью.
> В одну инструкцию пакуется несколько действий: c1=a1+b1, c2=a2+b2, c3=a3+b3
> можете исполнять в произвольном порядке, разрешаю. К слову х86 и ARM
> работают похожим образом, но это если знать как они работают.
Ваня явно не понимает ключевых особенностей процессорных архитектур на базе VLIW
(или, в терминологии Intel, EPIC). А также последствий применения таких архитектур
для компиляторов - см. про сложность оптимизации и плотность упаковки кода.
Учите матчасть, уважаемый.
> Сравнивать размеры бинарников, не понимая что собственно вы сравниваете, я вам искренне
> не советую. Напр. в Windows просто код создание пустого WS_OVERLAPPED окна
> занимает минимум 16 кб, а оптимизированное и на ассемблере лишь 120
> байт. Для Линукс аналогично, но это ни о чём ни говорит
> :).
Угу, особенно в тему здесь вопрос объема инициализационного кода, который к каждому
исполняемому модулю добавляется один раз и не зависит по объему от объема кода
самого модуля.
Сравнивать можно размер бинарников одной версии одного продукта под одну ОС,
но под разные архитектуры. См., например, размер дистрибутива Oracle Database
в вариантах HP-UX/PA-RISC и HP-UX/Itanium. Ну или под OpenVMS/Alpha и OpenVMS/Itanium.
Разница поразительная, а практически все файлы, не являющиеся откомпилированными
программными модулями, идентичны.