[Moscow.pm] Утечка памяти utf8 + regex
Artem Zhuravlev
zhuravlev.ua на gmail.com
Чт Мар 14 06:45:45 PDT 2019
Может переменная в цикле которая с 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
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <https://mail.pm.org/pipermail/moscow-pm/attachments/20190314/0a285f32/attachment.html>
Подробная информация о списке рассылки Moscow-pm