Size: a a a

Programming Offtop

2020 March 25

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Многопоточка без надобности синхронизировать доступ, не?
В принципе да.
источник

AN

Alexander Nozik in Programming Offtop
Принимается.
источник

AM

Andrew Mikhaylov in Programming Offtop
Ну так это с реконсайлом (и не только с ним, конечно же) на нормальных платформах рука об руку идёт.
источник

КР

Кирилл Романенко in Programming Offtop
Alexander Nozik
Еще раз, придумайте кейс, когда вам нужна коллекция до и после изменения одновременно и часто
Так не обязательно чтобы нужна была коллекция "до". Персистентные коллекции дешевле создают "новую" коллекцию, чем если просто с рид онли работать.
источник

AN

Alexander Nozik in Programming Offtop
Кирилл Романенко
Так не обязательно чтобы нужна была коллекция "до". Персистентные коллекции дешевле создают "новую" коллекцию, чем если просто с рид онли работать.
Если не надо до, то мутируете и все
источник

I

Igor in Programming Offtop
Alexander Nozik
Да без проблем. Read-only за глаза хватит.
источник

АХ

Алексей Худяков in Programming Offtop
Пожалуйста. У меня лежит мапа внутри TVar. Её постоянно читают и иногда меняют, всё из разных тредов. Читателям можно отдавать  мапу и не бояться что ее кто-то изменит на полпути/обмазывать локами
источник

VP

Vladimir Petrakovich in Programming Offtop
Кирилл Романенко
Так не обязательно чтобы нужна была коллекция "до". Персистентные коллекции дешевле создают "новую" коллекцию, чем если просто с рид онли работать.
Так если не нужна "до", берёшь и меняешь. И ничего копировать не надо.
источник

AN

Alexander Nozik in Programming Offtop
А вы уверены, что immutable персистентные?
источник

I

Igor in Programming Offtop
да
источник

AN

Alexander Nozik in Programming Offtop
Алексей Худяков
Пожалуйста. У меня лежит мапа внутри TVar. Её постоянно читают и иногда меняют, всё из разных тредов. Читателям можно отдавать  мапу и не бояться что ее кто-то изменит на полпути/обмазывать локами
Это тот же кейс, что привел @r4zzz4k. С тем, что можно делать lock-free согласен
источник

AN

Alexander Nozik in Programming Offtop
Igor
да
Я подозреваю, что там не только коллекции подменили. Персистентные коллекции сами по себе в среднем весьма тормозные. Я не знаю, что там, но есть острое подозрение, что в мутабельном варианте просто идет перепроверка всей коллекции.
источник

КР

Кирилл Романенко in Programming Offtop
Alexander Nozik
Если не надо до, то мутируете и все
Ну если на вход в функцию приходит рид онли список и я его как-то обрабатываю и меняю, то тут мутировать не вариант, ведь этот список где-то ещё может использоваться. Мутировать список норм если он локальный.
источник

AN

Alexander Nozik in Programming Offtop
В среднем персистентные коллекции существенно дороже, чем линейные всегда.
источник

VP

Vladimir Petrakovich in Programming Offtop
Кирилл Романенко
Ну если на вход в функцию приходит рид онли список и я его как-то обрабатываю и меняю, то тут мутировать не вариант, ведь этот список где-то ещё может использоваться. Мутировать список норм если он локальный.
Бери раст
источник

AN

Alexander Nozik in Programming Offtop
Кирилл Романенко
Ну если на вход в функцию приходит рид онли список и я его как-то обрабатываю и меняю, то тут мутировать не вариант, ведь этот список где-то ещё может использоваться. Мутировать список норм если он локальный.
Надо смотреть логику. Но в большинстве случаев будет дешевле перекопировать ссылки в новую коллекцию, чем поддерживать линкед лист
источник

AN

Alexander Nozik in Programming Offtop
Vladimir Petrakovich
Бери раст
Ну или да, контроль ownership
источник

I

Igor in Programming Offtop
Vladimir Petrakovich
Так если не нужна "до", берёшь и меняешь. И ничего копировать не надо.
А можно не думать в каждой функции "нужно или нет", а мыслить о сложности функции, только по ее сигнатуре.
Заодно и НЕ заботясь о том что было перед или после, или что будет внутри всех вложенных вызовах.
источник

VP

Vladimir Petrakovich in Programming Offtop
Igor
А можно не думать в каждой функции "нужно или нет", а мыслить о сложности функции, только по ее сигнатуре.
Заодно и НЕ заботясь о том что было перед или после, или что будет внутри всех вложенных вызовах.
Так в сигнатуре и так всё будет 🤷‍♂
источник

AN

Alexander Nozik in Programming Offtop
Igor
А можно не думать в каждой функции "нужно или нет", а мыслить о сложности функции, только по ее сигнатуре.
Заодно и НЕ заботясь о том что было перед или после, или что будет внутри всех вложенных вызовах.
Ну и в среднем получаете провал по перформансу.
источник