Size: a a a

2020 July 15

IR

IC Rainbow in Haskell
Artem Pelenitsyn
Товарищи, а если мне нужно в начале программы аллоцировать большую структуру, которая будет жить до конца программы, можно ли как-то позаботиться, чтобы GC не сильно с ней возился (то есть, например, пропускал Gen 0 и сразу ставил её в Gen 1)? Я пока пробовал использовать compact regions, но что-то не сказать, чтобы эффект был consistent: иногда получается быстрее, а иногда так же (вариабельность большая на бенчмарке почему-то).
compact, запиненая память
источник

IR

IC Rainbow in Haskell
Artem Pelenitsyn
Товарищи, а если мне нужно в начале программы аллоцировать большую структуру, которая будет жить до конца программы, можно ли как-то позаботиться, чтобы GC не сильно с ней возился (то есть, например, пропускал Gen 0 и сразу ставил её в Gen 1)? Я пока пробовал использовать compact regions, но что-то не сказать, чтобы эффект был consistent: иногда получается быстрее, а иногда так же (вариабельность большая на бенчмарке почему-то).
профилер что говорит? может не в ней дело
источник

AP

Artem Pelenitsyn in Haskell
IC Rainbow
профилер что говорит? может не в ней дело
дело в том, что это синтетический бенчмарк, где генерируется, условно, много бинарных деревьев размеров от больших до маленьких. Так что там сложно разобраться что где. Вначале генерируется одно большое дерево, оно живёт до конца. Потом много деревьев поменьше.
источник

AP

Artem Pelenitsyn in Haskell
IC Rainbow
compact, запиненая память
я вот с compact разобрался относительно легко (и как писал выше оно не сильно помогло), а про pinned даже не знаю что хорошего почитать: это через static pointers?
источник

IR

IC Rainbow in Haskell
это на случай если надо в памяти разложить блобы с диска. с деревьями не прокатит
источник

IR

IC Rainbow in Haskell
хотяяя.....
источник

L

LevT in Haskell
Jerzy Syrowiecki
потому что hie собрать — это тяжеловато, а Simple GHC Intergation работает сразу из коробки (на простых проектах)
Ну вот у меня работало... но недолго: что-то поменялось в мировом стейте
Я готов поработать над иммутабельным билдом самой винды с haskell-stack - чтобы сходу заводилась идея/code/что-то ещё..
источник

D

Dreamerinnoise in Haskell
LevT
Переслано от LevT
Взамен работавшего и внезапно отказавшего варианта VSCode/Simple GHC integration, проверяю другой

1) Ставится идея с плагином IntelliJ-Haskell
2) choco install haskell-stack

3) Генерится новый проект типа "Haskell module", для его генерации требуется stack
Идея сразу автоматически начинает длительный билд, обречённый на неудачу

Если поменять резолвер в stack.yaml на 15.3, плагин это детектит и предлагает пересобрать REPL
Опять долгое ожидание, и наконец работает

Как бы ускорить процесс.
Может, перед первым стартом плагина что-то подпилить в настройках?
Никак не ускорить, плагин через стек первый раз билдит проект и качает сорцы либ
источник

АГ

Александр Гранин... in Haskell
Artem Pelenitsyn
Товарищи, а если мне нужно в начале программы аллоцировать большую структуру, которая будет жить до конца программы, можно ли как-то позаботиться, чтобы GC не сильно с ней возился (то есть, например, пропускал Gen 0 и сразу ставил её в Gen 1)? Я пока пробовал использовать compact regions, но что-то не сказать, чтобы эффект был consistent: иногда получается быстрее, а иногда так же (вариабельность большая на бенчмарке почему-то).
Я не знаю, как там в других подходах, но в фри монадном такая структура есть, это AppRuntime. Например, он общий для всех обработчиков servant'a. Методы могут пользоваться шаренными данными (коннекциями, конфигами и пр.)
источник

MK

Maxim Koltsov in Haskell
какого чёрта нет инстанса ToJSON ByteString?
источник

IR

IC Rainbow in Haskell
Maxim Koltsov
какого чёрта нет инстанса ToJSON ByteString?
а с фига ли он должен быть такой, как ты хотел бы чтобы он был?
источник

MK

Maxim Koltsov in Haskell
такой же как для String и Text
источник

IR

IC Rainbow in Haskell
но это не текст
источник

MK

Maxim Koltsov in Haskell
а хм
источник

MK

Maxim Koltsov in Haskell
ну да
источник

MK

Maxim Koltsov in Haskell
ну encodeUtf8 хочу
источник

IR

IC Rainbow in Haskell
decodeUtf8
источник

IR

IC Rainbow in Haskell
(тут вспоминается байка про "покажи ifconfig")
источник

MK

Maxim Koltsov in Haskell
IC Rainbow
decodeUtf8
да
источник

MK

Maxim Koltsov in Haskell
кажется на этом рабочий день пора заканчивать
источник