Пожалуйста. У меня лежит мапа внутри TVar. Её постоянно читают и иногда меняют, всё из разных тредов. Читателям можно отдавать мапу и не бояться что ее кто-то изменит на полпути/обмазывать локами
Пожалуйста. У меня лежит мапа внутри TVar. Её постоянно читают и иногда меняют, всё из разных тредов. Читателям можно отдавать мапу и не бояться что ее кто-то изменит на полпути/обмазывать локами
Это тот же кейс, что привел @r4zzz4k. С тем, что можно делать lock-free согласен
Я подозреваю, что там не только коллекции подменили. Персистентные коллекции сами по себе в среднем весьма тормозные. Я не знаю, что там, но есть острое подозрение, что в мутабельном варианте просто идет перепроверка всей коллекции.
Ну если на вход в функцию приходит рид онли список и я его как-то обрабатываю и меняю, то тут мутировать не вариант, ведь этот список где-то ещё может использоваться. Мутировать список норм если он локальный.
Ну если на вход в функцию приходит рид онли список и я его как-то обрабатываю и меняю, то тут мутировать не вариант, ведь этот список где-то ещё может использоваться. Мутировать список норм если он локальный.
Ну если на вход в функцию приходит рид онли список и я его как-то обрабатываю и меняю, то тут мутировать не вариант, ведь этот список где-то ещё может использоваться. Мутировать список норм если он локальный.
Надо смотреть логику. Но в большинстве случаев будет дешевле перекопировать ссылки в новую коллекцию, чем поддерживать линкед лист
Так если не нужна "до", берёшь и меняешь. И ничего копировать не надо.
А можно не думать в каждой функции "нужно или нет", а мыслить о сложности функции, только по ее сигнатуре. Заодно и НЕ заботясь о том что было перед или после, или что будет внутри всех вложенных вызовах.
А можно не думать в каждой функции "нужно или нет", а мыслить о сложности функции, только по ее сигнатуре. Заодно и НЕ заботясь о том что было перед или после, или что будет внутри всех вложенных вызовах.
А можно не думать в каждой функции "нужно или нет", а мыслить о сложности функции, только по ее сигнатуре. Заодно и НЕ заботясь о том что было перед или после, или что будет внутри всех вложенных вызовах.