2013-07-28 3 views
8

मैं मार्पा :: आर 2 (मार्पा-आर 2-2.065_002) की नवीनतम रिलीज का उपयोग कर रहा हूं और ऐसा लगता है कि यह सभी मेमोरी बहुत तेज है। मैंने इसका परीक्षण करने के लिए भाई लिपि लिखी।मार्पा :: आर 2 मेमोरी

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 पर एक बग के रूप में रिपोर्ट किया गया है।

संपादित करें: अब यह रिलीज मार्पा-आर 2 2.066000 पर तय किया गया है। धन्यवाद

+3

ने मेरी मार्पा v2.064 के साथ perl5 v16.3 पर पुष्टि की। पुनरुत्पादन के लिए न्यूनतम कोड: 'perl -MMarpa :: R2 -e' * एम :: = * मार्पा :: आर 2 :: स्कैनलेस ::; मेरा $ जी = एम :: जी-> नया ({स्रोत => \ q (: प्रारंभ :: = ए ए :: = [])}); एम :: आर-> नया ({व्याकरण => $ जी}) 1 .. 1E5'' के लिए। क्या आपने पहले से ही एक बग दायर किया है? – amon

+0

एक बग दायर की? क्षमा करें मैं इन चीजों पर नया हूँ। मुझे यह कहां करना चाहिए? आपके लिए पुष्टिकरण और न्यूनतम कोड – jvverde

+3

ठीक है, बग की रिपोर्ट बग-मार्पा-आर 2 [at] rt.cpan.org – jvverde

उत्तर

5

सीपीएएन पर मार्पा-आर 2 2.065_006 में रिसाव तय किया गया है। इसे इंगित करने के लिए धन्यवाद और कम से कम उदाहरण के लिए आमोन के लिए धन्यवाद, जिसने मुझे समय बचाया और चीजों को आसान बना दिया।

समस्या पर्ल कोड में दिखाई दी। दो संरचनाओं में एक-दूसरे के संदर्भ होते हैं - एक परिपत्र संदर्भ। आमोन के उदाहरण के साथ निश्चित संस्करण का परीक्षण करना स्मृति उपयोग का उत्पादन करता है जो समय के साथ बिल्कुल फ्लैट है।

मुझे यह तय जल्द से जल्द सीपीएएन पर अनुक्रमित (जो गैर-डेवलपर है) रिलीज में मिलेगा।

+0

हां, मैं पहले से ही अपने कोड के साथ कोशिश करता हूं और यह एक आकर्षण की तरह काम करता है। धन्यवाद! – jvverde

+1

यह फ़िक्स अब पूर्ण, अनुक्रमित, सीपीएएन वितरण में शामिल है: मार्पा-आर 2 2.066000 –

संबंधित मुद्दे