Home
Objective Caml
ocaml@conference.jabber.ru
Четверг, 4 марта 2010< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | voice по запросу | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+3
[00:04:42] digital_curse вышел(а) из комнаты
[00:39:11] Typhon вышел(а) из комнаты
[01:14:32] sceptic вошёл(а) в комнату
[03:03:30] daapp вошёл(а) в комнату
[05:43:22] zert вышел(а) из комнаты
[06:50:06] digital_curse вошёл(а) в комнату
[07:04:26] digital_curse вышел(а) из комнаты
[08:30:56] iNode вошёл(а) в комнату
[08:44:36] sceptic вышел(а) из комнаты
[08:44:46] sceptic вошёл(а) в комнату
[09:08:36] gds вошёл(а) в комнату
[10:46:58] f[x] вошёл(а) в комнату
[10:49:00] Typhon вошёл(а) в комнату
[11:17:55] sceptic вышел(а) из комнаты
[11:22:55] gds вышел(а) из комнаты: Replaced by new connection
[11:22:56] gds вошёл(а) в комнату
[11:28:31] ermine вошёл(а) в комнату
[11:53:04] Typhon вышел(а) из комнаты
[12:00:06] Typhon вошёл(а) в комнату
[13:22:27] agk2 вошёл(а) в комнату
[13:23:46] agk2 вышел(а) из комнаты
[14:11:35] daapp вышел(а) из комнаты
[15:19:12] <f[x]> говорят что gc со временем убирает у force'нутых lazy значений indirection
[15:21:42] <olegfink> кстати, а может мне кто-нибудь дать линк, который убедит меня, что mark&sweep в однопоточном приложении чем-то принципиально круче refcounting?
[15:22:38] <olegfink> (причем круче настолько, что refcounting gc совсем нельзя использовать)
[15:25:14] <f[x]> циклы?
[15:26:52] <olegfink> а компилятор с таким не справится?
[15:29:26] <f[x]> я имею ввиду ссылочные циклы между значениями
[15:30:45] <olegfink> ну ведь mark&sweep тоже это как-то по-особому решает?
[15:32:04] <gds> ref counting gc ведь можно использовать.  Как это "нельзя"?
[15:33:12] <olegfink> ну его почти нигде нету, а я все не пойму, почему
[15:33:40] <olegfink> т.е. вот во всяких окамлях и прочих хаскелях mark&sweep, а потом куча проблем с ним
[15:35:03] Kakadu вошёл(а) в комнату
[15:39:02] <f[x]> в питоне refcounting вроде
[15:39:39] <f[x]> olegfink: mark&sweep никак особо циклы не решает - они просто отмечаются как unreachable по общему алгоритму
[15:40:23] <f[x]> и каких куча проблем кстати?
[15:41:25] <Typhon> в питоне refcounting + какой-то на поколениях для циклов
[15:41:27] <olegfink> ну, то он не жрет то, что надо, то жрет не то, что надо
[15:41:41] <gds> имхо разгадка в том, что для кучи мелких объектов в памяти, кучи операций их выделения и освобождения (как понимаю, попытка освобождения при каждом выходе из области видимости) получаются оверхеды и по памяти, и по количеству операций работы со счётчиками.  Где-то давно видел сравнение производительности mark&sweep vs ref counting, но не помню ни точной ссылки, ни ключевых слов.
[15:42:02] <olegfink> т.е. жрет то, что не надо
[15:43:27] <olegfink> ну это понятно, что написанный влоб refcounting слишком медленный, мне просто неочевидно, что его нельзя доизвратить до чего-нибудь пристойного
[15:43:57] <f[x]> olegfink: примеры? я с таким не сталкивался, это у conservative gc такая проблема (не жрёт то что надо)
[15:44:14] <f[x]> Typhon: да, точно. а у перла?
[15:44:42] <olegfink> ну вот ermine вчера какой-то gc-шный баг долго и упорно ловила
[15:45:09] <olegfink> (вернее баг где-то в районе общения камлевого gc с либой на си, насколько я понял)
[15:45:49] <Typhon> f[x]: этого не знаю, но циклы по-любому разрешать как-то надо, так что механизмы и у них должны быть не на рефакунтинге основанные
[15:45:50] <f[x]> olegfink: с этим ещё ничего не ясна, а сишным биндингам пофиг какой-там gc закрэшить
[15:46:21] <Typhon> это точно, на  питон/c при рефкаунтинге тоже натыкались на проблемы
[15:46:28] <f[x]> http://www.jwz.org/doc/gc.html
[15:47:07] <Typhon> а мне вот этот ресурс нравится: http://www.memorymanagement.org/
[15:50:33] <f[x]> perl похоже вообще с циклами ничего не делает, ужас ужас
[15:51:01] <olegfink> спасибо за ссылки
[15:51:31] <olegfink> вообще refcounting должен иметь то преимущество, что он более предсказуемый?
[15:51:54] <f[x]> http://www.ocaml-tutorial.org/garbage_collection
[15:52:05] gds вышел(а) из комнаты: Replaced by new connection
[15:52:07] gds вошёл(а) в комнату
[15:52:17] <f[x]> наверное, плюс не сканнит весь хип
[15:58:16] <Typhon> f[x]: мм, а разве generational весь постоянно сканить? насколько я знаю, он для того и делит на поколения, чтобы не ходить по всем постоянно.
[16:00:48] <f[x]> major проходит весь хип
[16:01:11] <f[x]> из-за того что есть minor - он это делает реже чем если бы его не было
[16:01:14] <Typhon> точно ж.
[16:04:00] <olegfink> еще есть какая-то очень забавная тема про связь между refcounting gc и linear types, но я ее пока не осилил, надо почитать.
[17:02:21] o92em вошёл(а) в комнату
[17:02:26] o92em вышел(а) из комнаты
[17:06:31] <f[x]> иногда в haskell@c.j.r бывает что-то интересное:
[15:29:24] <valexey> http://asset.soup.io/asset/0713/1509_5eec_500.jpeg - вот примерно так и проектируется софт.
[17:09:44] <gds> чотко.
[17:31:18] gds вышел(а) из комнаты
[17:50:12] iNode вышел(а) из комнаты
[17:53:58] sceptic вошёл(а) в комнату
[19:06:16] iNode вошёл(а) в комнату
[19:18:57] sceptic вышел(а) из комнаты
[19:29:10] Typhon вышел(а) из комнаты
[19:33:33] Typhon вошёл(а) в комнату
[19:35:50] Typhon вышел(а) из комнаты
[20:11:32] Kakadu вышел(а) из комнаты
[20:41:37] gds вошёл(а) в комнату
[20:44:14] digital_curse вошёл(а) в комнату
[21:38:46] sceptic вошёл(а) в комнату
[21:45:26] Typhon вошёл(а) в комнату
[21:52:57] ygrek вошёл(а) в комнату
[22:05:57] gds вышел(а) из комнаты
[22:06:34] ermine стирает пыль с ocsigen
[23:08:43] iNode вышел(а) из комнаты
[23:27:04] <ermine> f[x]: sqlgg уже умеет mysql и pgsql?
[23:27:17] <ermine> применить бы чонить для миграции из mysql в pgsql
[23:42:09] <ygrek> mysql умеет, а для pgsql надо реализовать traits
[23:48:00] <ermine> а чо это у тебя pgsql не в почете? :)
[23:56:01] <ygrek> не пригодилась (c)
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!