[Moscow.pm] Утечка памяти utf8 + regex

Artem Zhuravlev zhuravlev.ua на gmail.com
Чт Мар 14 06:50:24 PDT 2019


А это дня наглядности... фейла

чт, 14 мар. 2019 г. в 15:45, Artem Zhuravlev <zhuravlev.ua на gmail.com>:

> Может переменная в цикле которая с utf8 Должна называться $text_ru а не
> $text_en как у вас закоментировано.
>
> чт, 14 мар. 2019 г. в 14:46, Виктор Меркушов via Moscow-pm <
> moscow-pm на pm.org>:
>
>> Добрый день.
>>
>> Почему тут память течёт? Кто-нибудь встречался с таким?
>>
>> ==================== code ======================================
>>
>> use utf8;
>> use strict;
>> use warnings;
>>
>> use Memory::Usage;
>> use Test::More;
>>
>> my $text_ru = "Привет МИР!";
>> my $text_en = "Hello World!";
>>
>> subtest "test1" => sub {
>>     my $mu = Memory::Usage->new();
>>     $mu->record('BEGIN');
>>
>>     my $counter = 0;
>>     for ( 1..1_000_000 ) {
>>         # $text_en =~ m/Hello\sWorld/ && $counter++;
>>         $text_en =~ m/Привет\sМИР/ && $counter++;
>>     }
>>
>>     $mu->record('END');
>>
>>     print $mu->report(), $/;
>>
>>     my $mu_state = $mu->state();
>>     cmp_ok $mu_state->[-1]->[-1] - $mu_state->[0]->[-1], '<=', 10,
>>         "No more than 10 KB of memory was used for the data.";
>>
>>     # cmp_ok $counter, '==', 1_000_000, "All matched";
>>     cmp_ok $counter, '==', 0, "There are no matches";
>> };
>>
>> done_testing;
>> exit(0);
>>
>>
>> ======================= result v5.26.1 Ubuntu 18.04.2 LTS ===============
>>
>> $ perl -v
>>
>> This is perl 5, version 26, subversion 1 (v5.26.1) built for
>> x86_64-linux-gnu-thread-multi
>>
>> # Subtest: test1
>>   time    vsz (  diff)    rss (  diff) shared (  diff)   code (  diff)
>> data (  diff)
>>      0  32480 ( 32480)   9904 (  9904)   4544 (  4544)   2016 (  2016)
>> 5868 (  5868) BEGIN
>>      0  134780 ( 102300)  112336 ( 102432)   4544 (     0)   2016 (
>> 0)  108168 ( 102300) END
>>
>>     not ok 1 - No more than 10 KB of memory was used for the data.
>>     #   Failed test 'No more than 10 KB of memory was used for the data.'
>>     #   at ./memory_leak.t line 28.
>>     #     '102300'
>>     #         <=
>>     #     '10'
>>     ok 2 - There are no matches
>>
>> ======================= result v5.12.4 Ubuntu 12.04.5 LTS ===============
>>
>> $ perl -v
>>
>> This is perl 5, version 12, subversion 4 (v5.12.4) built for x86_64-linux
>>
>> # Subtest: test1
>>   time    vsz (  diff)    rss (  diff) shared (  diff)   code (  diff)
>> data (  diff)
>>      0  28084 ( 28084)   7196 (  7196)   1912 (  1912)   1248 (  1248)
>> 5664 (  5664) BEGIN
>>      1  28084 (     0)   7196 (     0)   1912 (     0)   1248 (     0)
>> 5664 (     0) END
>>
>>     ok 1 - No more than 10 KB of memory was used for the data.
>>     ok 2 - There are no matches
>>     1..2
>>
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
> --
> Best regards,
> Artem V. Zhuravlev
>


-- 
Best regards,
Artem V. Zhuravlev
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <https://mail.pm.org/pipermail/moscow-pm/attachments/20190314/fc60c1ef/attachment-0001.html>


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