Size: a a a

2020 November 19

VG

Vadim Goncharov in Modern::Perl
правда у винды с вызовом форка туго
источник

SZ

Sergey Zhmylove in Modern::Perl
Vyacheslav Olkhovchenkov
а если у тебя на странице условно так (H -- хеш, . -- что-то еше)
[HHHHHHHHHHHHHHH.HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH.]
Даже если так, то все равно только одна страница скопируется в дочернее адресное пространство, 4к всего по дефолту
источник

AU

Alexey Ugnichev in Modern::Perl
Sergey
Продакшн на винде не нужен /тред
У меня винды и нет, ггг. Я про *nix.
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
Sergey Zhmylove
Даже если так, то все равно только одна страница скопируется в дочернее адресное пространство, 4к всего по дефолту
ну. и так по каждому.
источник

W

Warstone in Modern::Perl
Vadim Goncharov
в питоне та же фигня, была статья от какого-то хайлоад-сайта, где им пришлось пропатчить чтоб CoW не возбуждался
Да, но почему не перепиливают? Почему нельзя был дать возможность навешивать SvIMMORTAL на любую SV. SvIMMORTAL не трогает счетчик и COW отработает (по идеи, если сначала принудительную стрингификацию вызвать)
источник

S

Sergey in Modern::Perl
Может на aix и нет, на всех современных - есть.
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
4байта остального тронул -- 4кб без этих 4 байт хэша скопировал
источник

AU

Alexey Ugnichev in Modern::Perl
Sergey
Может на aix и нет, на всех современных - есть.
У системного вызова fork()?
источник

VG

Vadim Goncharov in Modern::Perl
скорее всего и на aix есть, не застрял же он в 80-х
источник

S

Sergey in Modern::Perl
Это деталь реализации. В posix спеке ее нет, но все, кто делает форк, стараются его оптимизировать через cow.
источник

AU

Alexey Ugnichev in Modern::Perl
Sergey
Это деталь реализации. В posix спеке ее нет, но все, кто делает форк, стараются его оптимизировать через cow.
Так вот, деталь реализации в том, что только в ядре линукса fork() с CoW, если мне не изменяет.
источник

S

Sergey in Modern::Perl
На больших процессах даже page table копировать долго, не то что саму память. Поэтому huge pages и появились.
источник

S

Sergey in Modern::Perl
источник

AU

Alexey Ugnichev in Modern::Perl
Правильная ссылка вот: https://www.freebsd.org/cgi/man.cgi?query=vfork&sektion=2
источник

S

Sergey in Modern::Perl
Так fork или vfork? Это разные вызовы (внезапно), с разной семантикой.
источник

VG

Vadim Goncharov in Modern::Perl
в libc они могут и сходиться в один, POSIX не запрещает
источник

AU

Alexey Ugnichev in Modern::Perl
Sergey
Так fork или vfork? Это разные вызовы (внезапно), с разной семантикой.
Внезапно, я про это и говорил.
источник

AU

Alexey Ugnichev in Modern::Perl
Alexey Ugnichev
Так вот, деталь реализации в том, что только в ядре линукса fork() с CoW, если мне не изменяет.
А, таки да, изменяет.
источник

a

allter in Modern::Perl
allter
Т.е. типа
[% FOREACH x IN "y"; FOREACH z IN "k" %]

[% END; END %]
Если вдруг кому интересно, в TT можно ещё сделать следующим образом, уменьшив количество директив:
[% FOREACH [ { x => "y", z => "k" } ] %]
   [% x %][% z %]
[% END %]


Но вообще, странно, что нет какого-нибудь блочного LET, что бы синтаксического мусора было ещё меньше. Понятно, что все такие блоки в BLOCK потом выделяются (и у меня тоже), но всё же
источник

SZ

Sergey Zhmylove in Modern::Perl
allter
Если вдруг кому интересно, в TT можно ещё сделать следующим образом, уменьшив количество директив:
[% FOREACH [ { x => "y", z => "k" } ] %]
   [% x %][% z %]
[% END %]


Но вообще, странно, что нет какого-нибудь блочного LET, что бы синтаксического мусора было ещё меньше. Понятно, что все такие блоки в BLOCK потом выделяются (и у меня тоже), но всё же
Не понятно, зачем ты в 2к20 используешь Т_Т
источник