[Moscow.pm] perl 5.16 и Hash::Merge

Vladimir Timofeev vovkasm на gmail.com
Пн Ноя 12 10:02:59 PST 2012


2012/11/12 Ruslan Zakirov <ruz на bestpractical.com>:
> 2012/11/12 Андрей П. Ковбович <akovbovich на gmail.com>:
>> Подскажите, что изменилось такого в перле, что в 5.14.2 этот кусок
>> кода выполняется с константным RSS
>>
>> use Hash::Merge ();
>> my $m = Hash::Merge->new;
>> $m->set_clone_behavior(0);
>> $m->merge({a=>1},{b=>2}) while 1;
>>
>> в то же время, в 5.16.0 -  RSS растет как на дрожжах.
>
> Поздравляю, вы нашли memory leak либо в модуле, либо в perl itself.
>
> Возможно течет при выдергивании объекта из @_ с помощью &_get_obj;

Ага! Близкий к минимальному showcase вот такой
(https://gist.github.com/4058501):

while (1) {
    my $o = bless {}, 'main';
    test({});
    $o->test;
}

sub test { &test2; }
sub test2 { ref($_[0]) && eval { $_[0]->isa(__PACKAGE__) }; }

>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>
> --
> Best regards, Ruslan.
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org



--
Vladimir Timofeev <vovkasm на gmail.com>


Подробная информация о списке рассылки Moscow-pm