Size: a a a

2020 June 11

AI

Alex Ilizarov in rust_offtopic
polunin.ai
Кресты быстрее раста, это понятно в общем.
Тут никто не спорит. Отрыв то небольшой
источник

t

toriningen in rust_offtopic
polunin.ai
Для начала нужно спросить а на кой черт тебе такая большая производительность. Нужна ли она тебе. Если да, то берешь си/кресты или обмазываешься в паре мест ансейфами. Если нет, то все норм. Редко где нужно выдать прямо 100% производительности.
мне нужна такая "большая производительность", потому что мне нужно решить задачу многокритериальной оптимизации 🙂
источник

AI

Alex Ilizarov in rust_offtopic
Банальный bounds check в массивах не бесплатный
источник

p

polunin.ai in rust_offtopic
Alex Ilizarov
Тут никто не спорит. Отрыв то небольшой
Ну в полтора два раза :)
источник

AI

Alex Ilizarov in rust_offtopic
polunin.ai
Ну в полтора два раза :)
Зависит от кодера
источник

t

toriningen in rust_offtopic
причем т.к. пространство ошибок не гладкое, то решаю ее табуляцией всего пространства параметров
источник

t

toriningen in rust_offtopic
и тут способность гонять par_unseq очень выручает
источник

p

polunin.ai in rust_offtopic
Ну для таких задач и ввели ансейф
источник

t

toriningen in rust_offtopic
много расшаренных данных, вычисления пайплайном в несколько этапов
источник

t

toriningen in rust_offtopic
polunin.ai
Ну для таких задач и ввели ансейф
ну ты выше спросил, нужна ли мне вообще такая производительность. по моему мнению нужна, т.к. чем больше табулируемых конфигураций я смогу впихнуть в один цикл прогонки, тем меньше мне потом придется руками досчитывать 🙂
источник

p

polunin.ai in rust_offtopic
Ну и повторюсь уже который раз что все либостроители страдают по определению :)
источник

DS

Doge Shibu in rust_offtopic
toriningen
но вообще я растом побаловался немного - переписал свою числодробилку с плюсов на раст для проверки. получил 2х замедление за счет неоптимальных иммутабельных структур
Тебе не обязательно писать иммутабельный код в расте. Нигде такого требования нет.
источник

t

toriningen in rust_offtopic
Doge Shibu
Тебе не обязательно писать иммутабельный код в расте. Нигде такого требования нет.
о, это я хотел разделить состояние - думал, что раст, раз он построен с любовью к иммутабельным структурам, лучше их оптимизирует, чем плюсы свои констклассы
источник

DS

Doge Shibu in rust_offtopic
toriningen
о, это я хотел разделить состояние - думал, что раст, раз он построен с любовью к иммутабельным структурам, лучше их оптимизирует, чем плюсы свои констклассы
Нет, не надо пытаться на растовских дефолтных коллекциях писать в перформанс критических местах как на иммутабельны коллекциях
источник

AI

Alex Ilizarov in rust_offtopic
toriningen
о, это я хотел разделить состояние - думал, что раст, раз он построен с любовью к иммутабельным структурам, лучше их оптимизирует, чем плюсы свои констклассы
Я бы не сказал что он такой любитель иммутабельных структур. Просто дефолты пологичнее.
источник

DS

Doge Shibu in rust_offtopic
Они не заточены под это
источник

p

polunin.ai in rust_offtopic
toriningen
о, это я хотел разделить состояние - думал, что раст, раз он построен с любовью к иммутабельным структурам, лучше их оптимизирует, чем плюсы свои констклассы
Любовь к иммутабельных структурам это ближе к ФП языкам. Раст не ФП.
источник

t

toriningen in rust_offtopic
условно говоря, есть блоки обработки (агрегирующие функции), которые принимают некие параметры и данные с датчиков.

таких блоков много, они принимают одинаковые данные, но имеют разные параметры

и какие-то блоки используют другие блоки как параметры.

такой вложенности может быть с десяток уровней
источник

e

egoarka in rust_offtopic
toriningen
о, это я хотел разделить состояние - думал, что раст, раз он построен с любовью к иммутабельным структурам, лучше их оптимизирует, чем плюсы свои констклассы
https://github.com/orium/rpds

но я не тестил, можно побенчить
источник

t

toriningen in rust_offtopic
мне пришлось сделать не очень элегантно - при добавлении новых данных я обновляю "корневые" агрегирующие функции, а остальные блоки сделал чистыми функциями, которые компилятор просто редюсит
источник