Vadim
Я просто слышал (очень поверхностно) что гошный гц хорошо работает только в очень небольшом количестве кейсов - вроде какие то проблпмы с рекордами там были
Alexander
https://making.pusher.com/golangs-real-time-gc-in-theory-and-practice/
Выглядит так, что ребята захотели hard realtime от Haskell
Alexander
ну не то что хард, но они хотели минимизировать лэтенси
Alexander
в хаскелле тоже все можно сделать, но нужно сверх аккуратным быть
Alexander
Любопытно. Если брать мутабельные массивы и использовать те же техники, что и в плюсах для минимизации memory traffic - сработает?
A64m
ветка с инкрементальным замержена в мастер не была
тот, что не замерджен все-таки не конкурентный, и решал он проблемы не с паузами а с потоковой производительностью на большом числе ядер
A64m
были две работы по псевдоконкурентному, но они не доходили до такой стадии готовности
A64m
еще какой-то интерн начинал иммикс писать, там не было особого продвижения вроде
A64m
Любопытно. Если брать мутабельные массивы и использовать те же техники, что и в плюсах для минимизации memory traffic - сработает?
там не трафик надо минимизировать, а размер долгоживущих в гц-ной (и не компакт) куче
Влод
короче мне говорили что стек особо не кеширует. Я в своём проекте указал зависимости на 5 проектов в extra-deps, на гитовые комиты в гитхабе и он их собрал 1 раз. далее в консоли не было видно их пересборки и по времени тоже не чувствовалось. В чём подвох? где стек всё таки не кеширует?
A64m
если долгоживущих нет, можно гигабайты с секунду короткоживущих аллоцировать, паузы от этого не вырастут, гц обходить-то нечего будет
Andrei
вроде сборку с разными флагами не кеширует.
если флаги меняются, тупо пересобирает, да
Влод
вроде сборку с разными флагами не кеширует.
аа мб. ну у меня там совсем не было флагов, это ж либы
Leonid 🦇
--enable-profiling какой захочется если?
Andrei
хотя у меня весь снапшот пересобирало, когда я --trace включил
Andrei
а потом пересобирало обратно 🙂
Влод
короче да мб. в этом что-то есть. но в общем стека достаточно для большинства случаев. остаётся необходимость в никсе только для не-хаскельных зависимостей
A64m
ну, снойманиты не хотят никс-лайк сторедж поддерживать, где пакеты с разными ключами собранные можно кешировать
A64m
не все
кана
Сноймана здесь не любят?
как и везде, тут есть разные люди
Kirill
просто тупо переключаю ветку и давай пересобирать пару десятков зависимостей
Kirill
насколько оправданные пересборки были точно не выяснял
A64m
а можно в стеке что-нибудь где-нибудь включить чтоб стек сразу собирал с базами для хугла, а не пересобирал все при первом его (хугла) использовании?
Alexander
вроде как и с профилированием
Alexander
никак, но это не точно, Sloan домой долетит, я у него спрошу
Kirill
@qnikst он тоже чтоль теперь у вас работает? Предал сноймана?
Alexander
нет он от fpcomplete работает на того же клиента
Denis
чего-то я не понял
Denis
почему -with-opts не срабатывает
Denis
@qnikst ты там грозился посмотреть как можно рантайм проверить на выставленные параметры
Denis
документация про сишные хуки еще говорит, но мне лень с ними разбираться
A64m
почему -with-opts не срабатывает
у меня был случай, когда -with-rtsopts не работал
A64m
но я не поню точно при каких обстоятельствах
Denis
у меня такой же, походу
Denis
я на глаз вижу что ведет себя по другому, если я в +RTS все запихиваю
Leonid 🦇
Есть ещё переменная среды для опций
Leonid 🦇
Может выставил кто в shellHook
Denis
грепнул, нету
Denis
вообще походу nix где-то их теряет
Serghei
> вообще походу nix где-то теряет исправил )
Kirill
никс теряет ртс опции?
A64m
у меня похожая проблема была со стеком без никса
Serghei
это была толстая шутка про то что никс в принципе теряет. прошу прощеня если задел чьи-то чувства
Leonid 🦇
Так а чо было то?
A64m
не знаю, мне не удалось решить эту проблему
Leonid 🦇
а с никсом чо было?
Alexander
,c with-rts-opts нужно правильно кавычки делать
Denis
с кавычками кабал не жрет
Leonid 🦇
а ты что кавычками закрываешь? только опции? тогда и шелл не жрёт
A64m
у меня по одной опции на один визртсоптс было, все как надо
Denis
я ничего не закрываю, по одной опции на строчку с -with-rtsopts=абырвалг
Leonid 🦇
моноед!
Зигохистоморфный
полиед!
Alexander
а в хаскеле можно правильно реализовать паттерн "синглетон"?
Alexander
понятно что будет что то типа instance :: IO Singleton
Alexander
@catamorphism пни меня в районе 6
Alexander
я скину как кавычки делать
Alexander
там нужно дважны экранировать или т.п.
Leonid 🦇
понятно что будет что то типа instance :: IO Singleton
с unsafePerformIO разве что, нужно же IORef (или еще какой реф) сделать
Alexander
с unsafePerformIO разве что, нужно же IORef (или еще какой реф) сделать
ну я сейчас примерно так и сделал, первый в жизни unsafePerformIO
Alexander
просто удивился, что нет готового решения
Alexander
"-with-rtsopts=-s -N3 -n4m -A64m -qb0 -I0 -T"
Alexander
вот это из кабалфайла
Alexander
@catamorphism
Denis
попробую
Leonid 🦇
я про это и говорил
Alexander
IO Singleton это не то несколько
Alexander
а зачем?
ну обычно оно на каждый чих есть
Alexander
NOINLINE не забудь
hlint тащит 👍
Alexander
редко и делается одной строкой