🍅Ťомат
На базе tdlib
🍅Ťомат
чтоб ещё больше памяти жрал?
Не обязательно ж с гуи)
parket
🍅Ťомат
А что, много жрет?
У меня под никсами 369 мб
分解物質
А что, много жрет?
linux клиент через день два набирает 800mb
🍅Ťомат
Ну у меня и чатов до той самой матери
parket
А, ну я только включил, пол часа назад. Сейчас 130. Течет или нет, не проверял :)
Alexander
у меня 129
Leonid 🦇
Кэшит картинки и видосы же
Alexander
уже давно
Leonid 🦇
Это все Qt
Alexander
забандленное
parket
Кэшит картинки и видосы же
Как так? Не в ОЗУ же кешит?
Leonid 🦇
Всюду куда может
parket
Ну, то что на винт кешит, то понятно. Логично было бы выгружать всё из память, когда закрыл диалог. Если что, можно потом с винта подгрузить, последние N-штук.
Leonid 🦇
И вообще qml жручий
A64m
ну выдавите телеграмм в своп и посмотрите как он будет тормозить, когда с диска все это читать надо
Yura
господа, из Сипипишечки я помню, что поиск в маленьком std::vector может быть быстрее поиска в map, потому что он целиком может попасть в cach line процессора. Кто-то наблюдал подобные эффекты с Data.Vetor.Unboxed ?
A64m
ну да, так и будет, как иначе-то?
Yura
у меня есть маленький список, и интересно, будет ли быстрее
Yura
т.е. я понимаю, что должно бы, но хочется чужого опыта
A64m
сталкивался с таким случаем на практике, только вместо словаря было k-d дерево, но тут без разницы, дерево есть дерево
Yura
ок, спасибо
Leonid 🦇
Вот чому в плюсах нет в std мапы поверх вектора я вообще незнаю. А копипастить лень.
Leonid 🦇
Все алгоритмы есть, типа нет
Yura
да нету
Yura
но там обычно binary_search используешь...
Yura
может там какой-то инвариант для map-а не соблюдается?
Leonid 🦇
Ну вот да
Leonid 🦇
Инсерт игвалидирует итераторы
Cheese
у вектора тоже, но вектору это не мешает существовать
Leonid 🦇
Может в концепции "ассоциативный контейнер" надо
Cheese
коллеги, знаете ли вы какие-нибудь сборщики, умеющие скачивать зависимости из гита, как stack, только не прибитые гвоздями к Хаскелю?
Anatolii
эх, опердень потекла, после перезапуска жрет 15 мб. Повисела дней 5 и стала весить 150 :(
A64m
она это с течением времени плавно накопила, или просто до 200 разово подняла и 150 оставила потом?
Anatolii
Я зашел на сервак - решил проверить. Смотрю - 150 метров. Как-то мне это не понравилось и я перезапустил, получлиось 15
A64m
просто мемори менеджер не отдает же всю память, так что это может быть не утечка, а удержание памяти после какого-то пика. Или речь про занятую память, которую хаскельный рантайм рапортует?
Anatolii
нет, я htop посмотрел
Anatolii
там же чтобы посмотреть детали рантайма надо пересобирать с флажочками?
Anatolii
Пика быть не могло особо, им пока тольком никто не пользуется
Anatolii
@voidlizard вроде писал что там варп течет сам по себе в какой-то версии
Anatolii
может мне надо lts обновить
Denis
В какой? Я за ним не замечал.
A64m
ретейнеры возможно смотреть надо
это вообще без всяких ретейнеров
Yura
3,2,13
Yura
https://github.com/yesodweb/wai/issues/664
Yura
в lts-е нету
Yura
надо в stack.yaml добавлять
Yura
3,2,15
Anatolii
в lts-е нету
это конечно что-то, а почему Снойман в lts его не докинет сам
Anatolii
как-то не клеится это все
Yura
думаешь заговор?
Yura
сионистов
Yura
вообще мы эту утечку видели воочию
Yura
и новая версия помогла
Anatolii
вот эта статья актуальна?
Anatolii
https://making.pusher.com/memory-profiling-in-haskell/
Anatolii
блин, только что у видел от кого она
Yura
ghc-options: -fprof-auto -threaded -rtsopts "-with-rtsopts=-N -T"
Yura
графики hp2pretty
Kirill
Клин. Но на нем бекенд не пишут
https://www.youtube.com/watch?v=3khPfW7RFmY чувак бает, что голланцкие ВМФ хреначат всякое на клине :)
Alexander
@bravit111 минимум от одного студента доехало
Vitaly
@bravit111 минимум от одного студента доехало
Да мне второй вчера признался, что не написал.
Dmitry
во, optparse-generic не умеет в список неименованных аргументов (ну или миксовать их с именованными)
Aleksei (astynax)
Ну так там прямо в доке сказано - "не универсально"
Aleksei (astynax)
Да и каким типом это должно кодироваться?
Aleksei (astynax)
data Options = Options [arg] Switches + data Switches = Switches { foo :: ..., } ?
Dmitry
на optarse-applicative такое делается
Aleksei (astynax)
Я понимаю :) Но optparse-generic работает от типа данных, в отличие от optarse-applicative
Aleksei (astynax)
И именованые ключи получаются из именованых полей, а позиционные - из позиционных. Коль скоро в Haskell нельзя иметь конструктор, у которого часть полей позиционная, а часть - нет, то и generic CLI заявленного вида сделать не получится. Без приседаний, как минимум.
Dmitry
ну я вот ищу, как бы присесть в данном случае. на applicative аллергия, уж больно много в нём писанины
Aleksei (astynax)
Можно попробовать добавить какую-нибудь аннотацию типа asArg Opts { input :: FilePath ::: "Input file" :::: asArg , verbose :: Bool ::: "be verbose" }