Size: a a a

2021 January 22

VO

Vyacheslav Olkhovche... in Modern::Perl
можно это увидеть как-то иначе чем из исходников?
источник

W

Warstone in Modern::Perl
Олег, а там защита на одновременную запись в отдельную SV через мьютекс есть? А где тогда хранится сам мьютекс? Или он глобальный на все такие sv? (А то знаю я тут один Стелларис, который все IO через глобальный мьютекс пихал)
источник

OP

Oleg Pronin in Modern::Perl
Мутексы конечно есть иначе колизия на прокси sv будет
источник

OP

Oleg Pronin in Modern::Perl
Но это только за счет магии которую вешает шаред
источник

OP

Oleg Pronin in Modern::Perl
В стандартном коде перла за пределами shared.xs нету
источник

OP

Oleg Pronin in Modern::Perl
Только на маллоках и io операциях есть
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
а возврат результатов из тредов тоже через копирование сделан?
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
ну т.е. если я сделаю return @res из треда -- там гигабайты копироваться будут?
источник

OP

Oleg Pronin in Modern::Perl
Нет, это эксклюзивная передача
источник

OP

Oleg Pronin in Modern::Perl
Речь шла тока о shared
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
ну ок, меня устроит видимо такой вариант -- через return
источник

OP

Oleg Pronin in Modern::Perl
Причем судя по коду, массивы и хеши реально шаред. Скаляры внутри уже копируются но сами они шарятся
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
не копирующийся скаляр внутри хэша -- это те же самые гигабайты копирования
источник

OP

Oleg Pronin in Modern::Perl
Вячеслав я к сожалению не копал дальше. Может он копи он врайт там мог заюзать. По логике не может, иначе из под носа жопа будет.
источник

OP

Oleg Pronin in Modern::Perl
Но sv копируется. sv_setsv используется из прокси в видимую в перле переменную
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
да вот мне тоже кажется что элемент хеша или массива по сути тот же самый скаляр
источник

OP

Oleg Pronin in Modern::Perl
Да. Конечно. Но если там копи он врайт то не так страшно
источник

OP

Oleg Pronin in Modern::Perl
Только есть одно но. Все сделано через tie (для аррея и хеша) Это сверхмедленный механизм. Даже на нетредовом перле если повесить tie на фетч, скорость поиска в хеше дропается с 100 лямов в секунду до 1. А тут тай плюс когда ты пишешь keys %hash, через tie это тока first key + nextkey
Это N вызовов плюс на каждом блин мутексы
источник

OP

Oleg Pronin in Modern::Perl
Это полная жопанько
источник

OP

Oleg Pronin in Modern::Perl
Не юзайте шаред хеши))
источник