<div dir="ltr">Hi Tim,<div><br></div><div>  Yes, for me it's a rather serious problem in terms of search performance.  </div><div>If I know my hash-table will need to hold  50 million positions, then there is a huge</div><div>performance penalty if the hash-table has to grow from a small size.</div><div>As the number of positions becomes large, the cost to grow the hash-table and</div><div>rehash all the positions becomes significant.  Presumably it is growing many times to</div><div>get back to a large size.</div><div><br></div><div>Example:<br></div><div><br></div><div>   With a large hash-table, it takes my search roughly 1/2 hour to compute a generation</div><div>(the hash-table is basically used as a set to eliminate duplicate positions).</div><div>I do a CLRHASH in order to re-use the hash-table to accumulate the next generation</div><div>(this is a breadth-first search).  </div><div>When the hash-table shrinks after a CLRHASH, it takes 12 hours to compute the next</div><div>generation (which is only slightly larger than the previous one).</div><div><br></div><div>I agree that profiling is important.</div><div>Do you (or anyone else listening) know how to get code to generate alerts:</div><div>   1.  Every time the hash-table grows</div><div>   2.  Every time GC is called    (or is there a way to turn off automatic GC and call it either manually or explicitly in my code?)</div><div><br></div><div>Thanks for looking at this with me,</div><div>--Glenn</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 5, 2015 at 6:43 AM, Tim Bradshaw <span dir="ltr"><<a href="mailto:tfeb@me.com" target="_blank">tfeb@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span class="">On 5 Jan 2015, at 06:05, Glenn Iba <<a href="mailto:giba@alum.mit.edu" target="_blank">giba@alum.mit.edu</a>> wrote:<br><div><br><blockquote type="cite"><div style="font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:13px">Meanwhile, for my search purposes:</div><div style="font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:13px">Is there any way in CCL to specify a Minimum size for a hash-table??</div><div style="font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:13px">It seems pretty annoying (to put it mildly) that rehashing might reduce the size of the table.<span> </span></div></blockquote></div><br></span><div>I hate to ask this but: is this a problem?  In particular is there an observed performance or functionality problem caused by this?  My experience with things like this is that the performance characteristics are usually hairy and hard to understand, and that, usually, the people doing the implementation have understood these a lot better than I do, particularly with regard to GC.  So unless I've profiled and found that there is actually a performance problem, or the application has exploding memory use or something, I never worry.</div></div></blockquote></div><br></div>