beldmit: (Программизм)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2020-07-06 03:12 pm

В продолжение поста про эллиптические кривые

Когда я пришёл в программирование, ассемблер уже уходил, но в критических областях ещё оставался. И там, где требовалось быстродействие, не достигаемое компилятором, приходилось ориентироваться на поколение процессора.

Примерно в 2005-м году icc догнал по производительности написанный вручную криптокомовский ассемблерный код. Потом, правда, ассемблер вернулся в обличии compiler intrinsics — но синтаксис у них C-шный, а по умолчанию векторизация делается компилятором, и для того, чтобы его превзойти, требуется переписать алгоритм, иногда существенно. Но тем не менее C давал сочетание условно-понятного кода и позволял достичь скорости.

Реализация отсюда формально написана на C. Фактически же она сгенерирована программами на высокоуровневых языках. С 5 мегабайт кода на C при этом сделать практически ничего нельзя, он не для этого. Но куда более компактный код генератора, наверное, можно прочитать и понять.
drraug: (Default)

[personal profile] drraug 2020-07-06 02:34 pm (UTC)(link)
А сколько компилируется 5 мегабайт С кода?
drraug: (Default)

[personal profile] drraug 2020-07-06 04:01 pm (UTC)(link)
Серьезно? 20 секунд на 5 мегабайт кода?

Что за чудеса такие? У меня мегабайт f90-кода собирается несколько минут.
drraug: (Default)

[personal profile] drraug 2020-07-06 06:11 pm (UTC)(link)
Ну у меня в коде тоже дофига коментов, даже наверное больше чем 50%. (проверил - нет, значительно меньше, примерно 20% строк).

Да, может быть.