<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div>I've never used Mercurial or any other "real" programming tool for tracking changes, but go for it! It forces me to learn it.<br><br>I like the idea of a DB, but I'm a bit worried that this will get out of hand. It's a simple tool to do a quick analysis (although I have bigger plans in mind). I haven't looked at SQLite in a few years. Is it still an in-memory DB or does it allow you to dump the DB to a file (or two).<br><br>BTW - thanks for the patch. I like the second option of ignoring any return codes that are negative. Easy change.<br><br>Thanks!<br><br>Jeff<br><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br><div style="font-family: arial,helvetica,sans-serif; font-size: 10pt;">----- Original Message ----<br>From: Joe Landman
 <landman@scalableinformatics.com><br>To: Jeff Layton <laytonjb@att.net><br>Cc: Mark Hahn <hahn@mcmaster.ca>; Eric.L <eric.l.2046@gmail.com>; beowulf@beowulf.org<br>Sent: Tuesday, September 16, 2008 8:13:10 AM<br>Subject: Re: [Beowulf] stace_analyzer.pl can't work.<br><br>
A quick patchy-patchy for 310<br><br><br><br>--- <a target="_blank" href="http://strace_analyzer.pl">strace_analyzer.pl</a>    2008-09-16 07:57:34.000000000 -0400<br>+++ <a target="_blank" href="http://strace_analyzer_new.pl">strace_analyzer_new.pl</a>    2008-09-16 08:01:45.000000000 -0400<br>@@ -307,7 +307,7 @@<br>            $junk =~ s/[^0-9]//g;<br><br>            # Keep track of total number bytes read<br>-          $ReadBytesTotal += $junk;<br>+          $ReadBytesTotal += $junk if ($junk != -1);<br><br>            # Clean up write unit<br>            ($junk1, $junk2)=split(/\,/,$cmd_unit);<br><br><br>There may be other error return codes which are negative, so if you want <br>to filter those as well, use "(if $junk < 0)" rather than the
 above.<br><br>As for the rest of the code structure, writing this parser isn't all <br>that hard, and for those with smaller memories but bigger disks (and a <br>desired to analyze large straces), we could use the DBIx::SimplePerl <br>module.  Jeff is already putting his arrays together as hashes, and that <br>module makes it real easy to dump a hash data structure directly into a <br>database, say a SQLite3 database.  Which, curiously, could make a bit of <br>the code easier to deal with/write/debug.<br><br>The issue you have to worry about in dealing with huge streams of data, <br>is running out of ram.  This happens.  Many "common" techniques fail <br>when data gets very large (compared to something like ram).  We had to <br>solve a large upload/download problem for a customer who decided to use <br>a web server for multi gigabyte file upload/download form in an <br>application.  The common solution was to pull
 everything in to ram and <br>massage it from there.  This failed rather quickly.<br><br>I don't personally have large amounts of "free" time, but I could likely <br>help out a bit with this.  Jeff, do you want me to create something on <br>our mercurial server for this?  Or do you have it in SVN/CVS somewhere?<br><br>Joe<br><br><br>-- <br>Joseph Landman, Ph.D<br>Founder and CEO<br>Scalable Informatics LLC,<br>email: <a ymailto="mailto:landman@scalableinformatics.com" href="mailto:landman@scalableinformatics.com">landman@scalableinformatics.com</a><br>web  : <a href="http://www.scalableinformatics.com" target="_blank">http://www.scalableinformatics.com</a><br>        <a href="http://jackrabbit.scalableinformatics.com" target="_blank">http://jackrabbit.scalableinformatics.com</a><br>phone: +1 734 786 8423 x121<br>fax  : +1 866 888 3112<br>cell : +1 734 612 4615<br></div></div></div></body></html>