Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Sinclair, Вы писали:
S>>Вы устанете искать сценарий, в котором статическое порождение кода выиграет что-то заметное у динамики.
V>Это работает ровно до тех пор, пока работает аргумент "все-равно база тормозит".
Нет, почему. Вот, для того же linq2d — сравниваем динамику с кэшированием против статики (ручного выписывания аналогичного кода), выигрыша не видим. Никаких сотен миллисекунд — даже один процент наиграть не удаётся.
Автоматическая векторизация при этом позволяет отказаться от статического порождения кода под все варианты целевых платформ.
Ну и зачем было огород городить? S>>А вот сценариев проигрыша — масса. V>Разве что для случая херак-херак и в продашен.
Ну, так нам этот случай и интересен. Потому что время хочется тратить не на борьбу с ручным вылизыванием обхода массива, а на выбор алгоритмов.
Вон, как в Савола — на numpy предлагается реализация с двойным проходом для пре-аггрегирования.
Бенчмарк показывает, что эффективнее проходить один раз. Высокоуровневый код позволяет проверить эти гипотезы за минуты.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.