# New Ticket Created by  Joshua Isom 
# Please include the string:  [perl #37940]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37940 >


For the reverse-compliment benchmark, I've gotten it working(albeit not 
well), but with one major caveat.  Since, to my knowledge, parrot has 
no equivalent of perl's tr///, I implemented it using in place 
substitutions with substr.  Sometimes I get parrot to panic and 
quit(and might I add that the error message is pretty fixed from my 
look at the code), but other times it's able to keep going.  Parrot 
would slowly build up memory taken, and going to over 130 megs real, 
1.3 gigs virtual, and my last running, 700 memory regions.  Then, 
parrot will either panic and die because it can't get any more memory, 
or either parrot or the system readjusts the memory and reduces it to 
about 8 megs real, 650 megs virtual, and only 50 regions, and continues 
on without a trouble, no more increase in regions of memory, not 
exceeding ten megs of real memory and sometimes less than four, and a 
very slow increase of virtual.

I'm using the substr_s_i_i_s variation, and parrot r10448.  I noticed 
in src/memory.c there's a DETAIL_MEMORY_DEBUG that's not defined 
anywhere, and only mentioned in src/memory.c, but when I tried defining 
it, I couldn't get parrot to build.  Turning on trace "fixes" the 
memory issue, from the command line or from within the pir.  I haven't 
noticed any problems with any of the other substr variants.

I've attached the file, with the work around commented out and with the 
substr.  The input for it is via stdin, and is the output from fasta, 
with n = 2,500,000, which comes out to a nice 2.4 meg file, which is 
coincidental because after 24 lines of input to process I get the 
choke.

Oh, and at the moment I'm at ten minutes in, about 200 lines, out of 
41671.  Perl takes half a second.  I'm not going to see if it'll finish 
in under 30 hours.

Reply via email to