<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 14.02.5004.000">
<TITLE>Help with profiling</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">Hi Café,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">I'm attempting to profile my rather large (~18K LOC)</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">Haskell</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">program that</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">primarily</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">manipulates</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">graph structures based on Data.IntMap. The program is chewing up _lots_ of memory (approx. 4G for</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">2.5K</FONT></SPAN><SPAN LANG="en-us"><FONT FACE="Calibri"> nodes &</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">2.5K</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">edges)</FONT></SPAN><SPAN LANG="en-us"><FONT FACE="Calibri"> and I have profiled it in an attempt to figure out why.</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">It appears that the .prof</FONT></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">and .hp (which I visualize with hp2ps -c) files do not agree on the source of the problem.</FONT></SPAN><SPAN LANG="en-us"><FONT FACE="Calibri"> The hp results are located at:</FONT></SPAN><SPAN LANG="en-us"> </SPAN><A HREF="http://www.eecs.harvard.edu/~uribraun/sybil.ps"><SPAN LANG="en-us"><U><FONT COLOR="#0000FF" FACE="Calibri">http://www.eecs.harvard.edu/~uribraun/sybil.ps</FONT></U></SPAN><SPAN LANG="en-us"></SPAN></A><SPAN LANG="en-us"><FONT FACE="Calibri"> and the top of the .prof file looks like this:</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT FACE="Courier New">COST CENTRE                   MODULE                  %time %alloc</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">compare                       Policy.Edge              21.7   50.0</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">eqPartition.edges             Policy.EdgeQuad           6.5    3.7</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">toConstructedSet              Types.TaggedIntMultimap   6.1    3.6</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">elems                         Types.TaggedIntMap        6.0    6.8</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">elems                         Types.TaggedIntSet        5.7    3.8</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">toPairs                       Types.TaggedIntMultimap   3.9    5.2</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">assocs                        Types.TaggedIntMap        3.2    4.1</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">eqIsValid                     Policy.EdgeQuad           2.9    0.5</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">rIsValid                      Policy.Relations          2.2    0.2</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">assocs.\                      Types.TaggedIntMap        1.8    0.0</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">keysSet                       Types.TaggedIntMap        1.5    1.7</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">mergeIdenticalNodesT.exactMap Minimize.MergeIdentical   1.4    1.2</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">fromList                      Types.TaggedIntSet        1.3    1.6</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">tePartitionSrc                Policy.TaggedEdge         1.2    0.9</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">null                          Types.TaggedIntSet        1.2    0.0</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">scc.comps                     Policy.Scc                1.2    0.9</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">tePartitionTgt                Policy.TaggedEdge         1.1    0.8</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">member                        Types.TaggedIntSet        1.1    0.8</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Courier New">alter                         Types.TaggedIntMap        1.0    1.1</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">Also, the line in the .prof that corresponds to the anormUnion.name (what the hprof image claims is taking up space) looks like</FONT></SPAN><SPAN LANG="en-us"><FONT FACE="Calibri"> (some spaces removed)</FONT></SPAN><SPAN LANG="en-us"><FONT FACE="Calibri">:</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT FACE="Courier New">anormUnion.name Anormalize.Anormalize                2914          60    0.0    0.0     0.0    0.0</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">My main questions at this point are:</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">1.     </FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT FACE="Calibri">What are the chances the hprof image is just wrong?</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">2.     </FONT> <FONT FACE="Calibri">What would you suggest I try next in debugging my space issue?</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">This is my first big Haskell program, please do inform me of any big war tools I don</FONT></SPAN><SPAN LANG="en-us"><FONT FACE="Calibri">’t know about.</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">Many thanks in advance!</FONT></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">+Uri</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

</BODY>
</HTML>