[Moscow.pm] Утечка памяти utf8 + regex
Виктор Меркушов
merkushov.victor на gmail.com
Чт Мар 14 05:45:58 PDT 2019
Добрый день.
Почему тут память течёт? Кто-нибудь встречался с таким?
==================== 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
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <https://mail.pm.org/pipermail/moscow-pm/attachments/20190314/dd9e58a6/attachment-0001.html>
Подробная информация о списке рассылки Moscow-pm