<div dir="ltr">Hey Uri,<div>could you explain what those numbers represent? many of use the profiling tools, but we may not remember what columns / numbers mean what. What number seems wrong and what does the number mean? Also its very hard to help debug if you don't link to the code</div>
<div><br></div><div>If you're hitting space leak problems, one culprit could be your data structure or the operations acting on it is too lazy! Have you tried making it stricter?</div><div><br></div><div>cheers</div>
<div>
-Carter</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Dec 5, 2013 at 8:13 PM, Uri Braun <span dir="ltr"><<a href="mailto:uribraun@eecs.harvard.edu" target="_blank">uribraun@eecs.harvard.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>
<div>
<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" target="_blank"><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 class="HOEnZb"><font color="#888888"><span lang="en-us"></span></font></span></p><span class="HOEnZb"><font color="#888888">
<p dir="LTR"><span lang="en-us"><font face="Calibri">+Uri</font></span><span lang="en-us"></span><span lang="en-us"></span></p>
</font></span></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div>