Size: a a a

2020 December 15

AA

A64m AL256m qn<co... in Haskell Start
Timofey Zakrevskiy
А вдруг оно там под капотом может понять, что в мапу только вставки, а каждое "поколение" мапы используется ровно один раз? И, соответственно, можно перезаписывать уже существующий кусок памяти, а  не аллоцировать новый (это, правда, зависит от представления мапы в памяти).
так перезаписывание чего-то там дороже бамп аллокатора выйдет
источник

TZ

Timofey Zakrevskiy in Haskell Start
"Ужасная" - это по сравнению с вышеупомянутыми 176Mb на расте
источник

A

Aragaer in Haskell Start
ну вот бамп аллокатора это во-первых память, а во-вторых есть подозрение, что поиск получается небыстрым
источник

AA

A64m AL256m qn<co... in Haskell Start
а мутабельные ссылки дороже для гц обойдутся, так что от такого переиспользования никакой пользы кроме вреда не будет
источник

TZ

Timofey Zakrevskiy in Haskell Start
A64m AL256m qn I0
так перезаписывание чего-то там дороже бамп аллокатора выйдет
Вот это место мне не кажется очевидным
источник

AA

A64m AL256m qn<co... in Haskell Start
Aragaer
ну вот бамп аллокатора это во-первых память, а во-вторых есть подозрение, что поиск получается небыстрым
поиск чего и что память?
источник

AA

A64m AL256m qn<co... in Haskell Start
Timofey Zakrevskiy
Вот это место мне не кажется очевидным
допустим, что оно неочевидно, но это нормально для управления памятью
источник

A

Aragaer in Haskell Start
ну вот 3 миллиона или сколько там записей при использовании иммутабельной мапы займут 3 миллиона "места" независимо от того, сколько раз там повторяются ключи
источник

AA

A64m AL256m qn<co... in Haskell Start
че?
источник

AA

A64m AL256m qn<co... in Haskell Start
если сохранить ссылки на все 3 миллиона версий, то больше, если не сохранять то меньше
источник

A

Aragaer in Haskell Start
а как их не сохранять? Я умею делать только Map.insert
источник

AA

A64m AL256m qn<co... in Haskell Start
гц место под аллокацию все равно переиспользует же, только не по одному кусочку в ~100 байт, а мегабайтами
источник

AA

A64m AL256m qn<co... in Haskell Start
Aragaer
а как их не сохранять? Я умею делать только Map.insert
ну т.е. ссылка на одну только версию - последнюю - и сохраняется
источник

A

Aragaer in Haskell Start
да, но если сделать print на этот результат, то содержимое выглядит как fromList [полная история всего со всеми записями]
источник

AA

A64m AL256m qn<co... in Haskell Start
а
источник

AA

A64m AL256m qn<co... in Haskell Start
ну тогда да
источник

AA

A64m AL256m qn<co... in Haskell Start
но тогда больше чем 3 миллиона записей, а три миллиона записей * лог (зависит от того как мап имплементирован)
источник

A

Aragaer in Haskell Start
а, нет, перезаписывает
источник

A

Aragaer in Haskell Start
значит это мне тогда в процессе показалось
источник
2020 December 16

A

Aragaer in Haskell Start
сегодня неплохо. Наверно стоило бы использовать мапы, но я как-то обошелся просто параллельными списками
источник