допустим имеем коллекцию в миллион строк. Добавили или удалили одну. Коллекция то будет новая. Перформанс не просядет? Ведь таких порождений может быть много и нагрузка на GC большая . Или я ничего не понимаю и это как то хитро сделано ?
это аргумент сишарпшиков из начала нулевых)
Зависит от коллекции.
Та я без наездов. Я спрашиваю просто))
если хочешь быстро мутировать коллекции на миллион, бери сишарпные массивы)
если ты удаляешь/добавляешь первый элемент односвязного списка, то не просядет) Но конечно же, для мутабельных задач брать иммутабельные массивы тупо, согласись-ка!
Есессно. Я говорил про коллекции в общем, не только маассивы.Но, неужели не бывает задач связанных с мутацией? Они же должны решаться как то в рамках фшарп. Пусть даже и язык то заточен на иммутабельны типы.
Так берёшь мутабельные коллекции и делаешь)
Лан, спасибо. Пойду дальше читать.
ща поясню. Дефолтная иммутабельность удобнее. Локализуешь мутабельность в приватном скоупе и внезапно получаешь удобный код с иммутатебельным апи и мутабельной имплементацией для перфа. Лучшее двух миров
Так разве не наоборот? Прятать страшный перф код где-нибудь, а наружу и везде все иммутабельно?
А я так и сказал... > удобный код с иммутатебельным апи и мутабельной имплементацией для перфа
Кодом было бы понятнее , но все равно спасибо)
Для решения таких задач существуют специальные коллекции — персистентные. Они переиспользуют свои фрагменты при иммутабельных модификациях, и балансируют между memory pressure и cache locality.
Обсуждают сегодня