Size: a a a

2020 November 19

DF

Denis F in Modern::Perl
🙈
источник

b

basiliscos in Modern::Perl
неинклюзивная )
источник

DF

Denis F in Modern::Perl
во! Тикай с городу, короче :)
источник

W

Warstone in Modern::Perl
Не-не-не... Там что-то про харрасмент должно быть... Или про оффенсив.
источник

VG

Vadim Goncharov in Modern::Perl
Warstone
Я про вообще идею форка ради сохранения памяти. Я на это натыкался... Допустим у нас есть словарик в перле. Метров на 500. Мы его зачитали, навесили всякое, что он только для чтения и форкнулись. Системный COW сказал ага и оставил только одну страницу, допустим... Однако, так как арена, грубо говоря, одна (допустим), то следущий my $a, попадает в ту-же страницу с нашей "readonly" памятью и COW копирует... Обращение к словарику, что-то типа: my $data = $dict->{cool}{data} - взводит счетчик внутри структуры SV, на единицу и COW копирует страницу... Короче в Перле все сделано так, чтобы послать системный COW нахуй и не экономить память.
в питоне та же фигня, была статья от какого-то хайлоад-сайта, где им пришлось пропатчить чтоб CoW не возбуждался
источник

VG

Vadim Goncharov in Modern::Perl
Denis F
так он вроде не для экономии форкает на старте, а чтобы в эвентлупе не вылезло чего-то из другого процесса. Я где-то у него читал про подводные камни тупого форкания AE, но где именно забыл уже.
ну да, наследование дескрипторов например
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
Sergey Zhmylove
По описанию задачи, проблема в том, что в родителе есть хеш, в ребенке есть хеш, но при чтении/изменении его элементов будет cow.
Мое suggested solution: класть хеш в shm, обращаться к нему через tied hashref, которая с помощью xs будет доставать нужные значения.
При изменении значения мы можем столкнуться с тем, что кладём в хеш либо nested structure, либо ссылку. В обоих случаях придется хандлить в xs что с этим делать
не его, а любых других объектов которые оказались на тех же страницах что элементы хэша
источник

SZ

Sergey Zhmylove in Modern::Perl
Vyacheslav Olkhovchenkov
не его, а любых других объектов которые оказались на тех же страницах что элементы хэша
Ну там хеш огромный, так что это незаметно
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
чё это незаметно?
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
у тебя на страницах в перемешку хэш и остальное.
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
остальное потрогал -- весь хеш скопировался
источник

SZ

Sergey Zhmylove in Modern::Perl
Vyacheslav Olkhovchenkov
у тебя на страницах в перемешку хэш и остальное.
Когда у тебя хеша 50гб, а всего остального - 4мб, то это незаметно, ящитаю :р
источник

SZ

Sergey Zhmylove in Modern::Perl
Vyacheslav Olkhovchenkov
остальное потрогал -- весь хеш скопировался
Только страница скопируется
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
это если у тебя страницы почему-то разделились
источник

AU

Alexey Ugnichev in Modern::Perl
CoW ещё и только на «этих ваших линуксах», ага?
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
а если у тебя на странице условно так (H -- хеш, . -- что-то еше)
[HHHHHHHHHHHHHHH.HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH.]
источник

VG

Vadim Goncharov in Modern::Perl
Alexey Ugnichev
CoW ещё и только на «этих ваших линуксах», ага?
нет, везде
источник

S

Sergey in Modern::Perl
Продакшн на винде не нужен /тред
источник

AU

Alexey Ugnichev in Modern::Perl
Vadim Goncharov
нет, везде
vfork? Или как там?
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
то трогая это еще ты заодно копируешь дохуя хэша
источник