Size: a a a

2021 January 22

AK

Andrey Konovalov in Modern::Perl
Vyacheslav Olkhovchenkov
что-то я такого упоминанию сходу не увидел
Пожалуй, коллеги правы: если нужно шарить данные, и количество этих данных вполне немаленькое, я б треды не использовал...
Так-то Mojolicious очень удобен, там есть промисы, и если эта концепция знакома, то асинк будет супер-комфортным
источник

OP

Oleg Pronin in Modern::Perl
По крайней мере не используйте keys %shared_hash если там дохера элементов
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
нет, не знакома. я пожалуй лучше через возврат массива всякого говна сделаю.
источник

OP

Oleg Pronin in Modern::Perl
А еще там будут ключи которые оттуда уже выпилены паралельно если вам повезло
источник

OP

Oleg Pronin in Modern::Perl
Шареды прикручены сбоку через магию, сам код перла ничего не делает и не знает о таком. Это сделано чтобы не замедлять еще больше и без того медленный тредовый перл. В итоге скорость шаредов страдает. Раскопал про копиравание. Да будет использован copy-on-write. Т.к. любое малейшее обращение к shared переменной это сразу мутекс в магии колбеке, то можно безопасно. Собстно в итоге Вадим прав, гигабайты не будут копироваться (до первой попытки их изменить - тогда будут, подчеркиваю sv сама там не общая ).
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
ну т.е. для скаляров тоже получается copy-on-write?
источник

OP

Oleg Pronin in Modern::Perl
Да
источник

OP

Oleg Pronin in Modern::Perl
Для строк
источник

AK

Andrey Konovalov in Modern::Perl
Oleg Pronin
Шареды прикручены сбоку через магию, сам код перла ничего не делает и не знает о таком. Это сделано чтобы не замедлять еще больше и без того медленный тредовый перл. В итоге скорость шаредов страдает. Раскопал про копиравание. Да будет использован copy-on-write. Т.к. любое малейшее обращение к shared переменной это сразу мутекс в магии колбеке, то можно безопасно. Собстно в итоге Вадим прав, гигабайты не будут копироваться (до первой попытки их изменить - тогда будут, подчеркиваю sv сама там не общая ).
Олег, а Вы сможете сделать короткую заметку для хабра на эту тему? Ну или куда-то в ещё...
источник

AK

Andrey Konovalov in Modern::Perl
Просто жалко, что всё это пропадёт здесь
источник

OP

Oleg Pronin in Modern::Perl
Андрей там надо в дебагере сидеть. Например sv_setsv длинный и сложный. В общем случае он имеет код и для копи он врайт и реально копирование. В каких то случаях он может скопировать. Там надо сидеть разбираться в этой каше и прогонять в дебагере стшном куда он там реально идет в случае тредового перла и шаред переменной. Он про нее ничего не знает, но в sv есть куча флагов. Я на 100% не уверен что он сднлает копи он врайт, просто при беглом осмотре не вижу причин почему нет. Надо сидеть разбираться.
источник

AK

Andrey Konovalov in Modern::Perl
Oleg Pronin
Андрей там надо в дебагере сидеть. Например sv_setsv длинный и сложный. В общем случае он имеет код и для копи он врайт и реально копирование. В каких то случаях он может скопировать. Там надо сидеть разбираться в этой каше и прогонять в дебагере стшном куда он там реально идет в случае тредового перла и шаред переменной. Он про нее ничего не знает, но в sv есть куча флагов. Я на 100% не уверен что он сднлает копи он врайт, просто при беглом осмотре не вижу причин почему нет. Надо сидеть разбираться.
Многие же и поверхностно не знают, как это работает, так что можно в детали не углубляться особо :)
источник

OP

Oleg Pronin in Modern::Perl
И я смотрел исходники 5.20, вы тут ведь все любите старые перлы) в 5.32 может переделали чтото
источник

VG

Vadim Goncharov in Modern::Perl
5.20 можно считать достаточно свежим :)
источник

VG

Vadim Goncharov in Modern::Perl
раз уж про скаляры и магию, напомните, чем можно посмотреть, сколько у объекта ссылок и где они? при подозрении на забытый weaken на хэше
источник

W

Warstone in Modern::Perl
Vadim Goncharov
раз уж про скаляры и магию, напомните, чем можно посмотреть, сколько у объекта ссылок и где они? при подозрении на забытый weaken на хэше
источник

W

Warstone in Modern::Perl
Ой не то
источник

YM

Yuri Myasoedov in Modern::Perl
Может Devel::Refcount какой-нить
источник

W

Warstone in Modern::Perl
Vadim Goncharov
раз уж про скаляры и магию, напомните, чем можно посмотреть, сколько у объекта ссылок и где они? при подозрении на забытый weaken на хэше
источник

W

Warstone in Modern::Perl
Или даже вот это (Блин.. .как много модулей делают похожее): https://metacpan.org/pod/Devel::Peek
источник