首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Marpa::R2泄漏内存

Marpa::R2泄漏内存
EN

Stack Overflow用户
提问于 2013-07-28 20:48:57
回答 1查看 242关注 0票数 8

我使用的是最新发布的marpa::r2 (Marpa-R2-2.065_002),它似乎吞噬了所有的内存。我写了下面的脚本来测试它。

代码语言:javascript
复制
use strict;
use warnings FATAL => 'all';
use Marpa::R2;
use Data::Dumper;

my $grammar = Marpa::R2::Scanless::G->new({
 action_object => __PACKAGE__,
 source => \(<<'END_OF_SOURCE'),
 :default ::= action => ::array
 :start ::= path
 path ::=
  step               action => _do_step
 step ~ [a-z]+ 
END_OF_SOURCE
});

sub _do_step{ return {step => $_[1]}};


sub new {}     #The Marpa::R2 needs it
sub compile{
 my ($query) = @_; 
 return undef unless $query;

 my $reader = Marpa::R2::Scanless::R->new({
  grammar => $grammar,
  trace_terminals => 0,
 });
 $reader->read(\$query);
 print Dumper $reader->value;
}

compile($_) foreach ('aaaa'..'zzzz'); 

我能做些什么来防止内存泄漏?

编辑:这现在被报告为rt.cpan的一个bug。

编辑:它现在固定在Marpa-R2 2.066000版上。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-31 15:37:21

泄漏在CPAN上的Marpa-R2 2.065_006中被修复。感谢您指出这一点,并感谢amon提供了一个最小的示例,它节省了我的时间,使事情变得更简单。

问题最终出现在Perl代码中。两个结构相互引用--一个循环引用。用amon的例子测试固定版本会产生内存使用,随着时间的推移,内存的使用绝对是平坦的。

我将尽快在CPAN上的索引(即非开发人员)发行版中获得此修复。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17912742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档