in fact cannot the cache be class side?   beucase now each time you do HelpBrowser open, you compute again the cache....but I am not sure if they should change amont different opened browsers<br><br>cheers<br><br>mariano<br>
<br><div class="gmail_quote">On Sat, Apr 30, 2011 at 5:07 PM, Alexandre Bergel <span dir="ltr">&lt;<a href="mailto:alexandre.bergel@me.com">alexandre.bergel@me.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Yes, but this depends what is the expected behavior of the browser. I like the Agile approach that says you&#39;re done when all the tests are green :-)<br>
<font color="#888888"><br>
Alexandre<br>
</font><div><div></div><div class="h5"><br>
<br>
On 30 Apr 2011, at 10:02, Mariano Martinez Peck wrote:<br>
<br>
&gt; Yes, but I have no idea. Another thing is that now HelpBrowser should implement something like:<br>
&gt;<br>
&gt; HelpBrowser &gt;&gt; cleanUp<br>
&gt; self resetChache<br>
&gt;<br>
&gt; &gt;&gt; resetCache<br>
&gt; helpTopicCache := nil<br>
&gt;<br>
&gt; So that the class is automatically cleaned in #cleanUpForRelease and friends... right now since Smalltalk cleanUp sends to all classes which understand such method, just implemented that should be enough.<br>
&gt;<br>
&gt; Cheers<br>
&gt;<br>
&gt; Mariano<br>
&gt;<br>
&gt;<br>
&gt; On Sat, Apr 30, 2011 at 4:58 PM, Alexandre Bergel &lt;<a href="mailto:alexandre.bergel@me.com">alexandre.bergel@me.com</a>&gt; wrote:<br>
&gt; You&#39;re right Mariano. However, I do not know if the help browser gets updated if you have a browser opened and add a new help in the system. In any case, this is a requirement that is not formalized by the unit tests.<br>

&gt;<br>
&gt; I think that ideally, the reset cache should be done when receiving an event of a class creation that is a help.<br>
&gt;<br>
&gt; Alexandre<br>
&gt;<br>
&gt;<br>
&gt; On 30 Apr 2011, at 09:29, Mariano Martinez Peck wrote:<br>
&gt;<br>
&gt; &gt; Cool! Thanks Alexandre. Now...the problem with the cache is always the same...when to invalidate them.<br>
&gt; &gt; In this case, when do I need to set helpTopicCache to nil. I guess that if you create a help, then it is &quot;automatically&quot; detected when you open the browser.<br>
&gt; &gt; Now, you have to explicitly flush the cache, haven&#39;t you?  So...is there some documentation of HelpSystem that should be updated to reflect that ?<br>
&gt; &gt;<br>
&gt; &gt; Thanks<br>
&gt; &gt;<br>
&gt; &gt; On Sat, Apr 30, 2011 at 3:15 AM, Alexandre Bergel &lt;<a href="mailto:alexandre.bergel@me.com">alexandre.bergel@me.com</a>&gt; wrote:<br>
&gt; &gt; &gt; MessageTally time: [HelpBrowser open]   between 2 seconds in Cog and with a regular VM between 6 and 8....<br>
&gt; &gt; &gt; is there an easy way to improve it ?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Alexandre, do you want another place where to put a cache like Metacello&#39;s currentVersion?   ;)<br>
&gt; &gt;<br>
&gt; &gt; :-)<br>
&gt; &gt; Sure. Easy.<br>
&gt; &gt;<br>
&gt; &gt; SystemHelp&gt;&gt;allSystemHelpPragmas takes time. When you open a browser, the method HelpBrowser&gt;&gt;open is called once and SystemHelp&gt;&gt;allSystemHelpPragmas twice. Easy to suspect that a cache is missing.<br>

&gt; &gt;<br>
&gt; &gt; So, if you define<br>
&gt; &gt; -=-=-=-=-=-=-=-=-=<br>
&gt; &gt; HelpBrowser&gt;&gt;helpTopic<br>
&gt; &gt;        ^ helpTopicCache ifNil: [ helpTopicCache := rootTopic asHelpTopic ]<br>
&gt; &gt; -=-=-=-=-=-=-=-=-=<br>
&gt; &gt;<br>
&gt; &gt; and adapt HelpBrowser&gt;&gt;refresh you win 50% of execution time.<br>
&gt; &gt;<br>
&gt; &gt; Here is it:<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; <a href="http://code.google.com/p/pharo/issues/detail?id=4126" target="_blank">http://code.google.com/p/pharo/issues/detail?id=4126</a><br>
&gt; &gt;<br>
&gt; &gt; Before this fix, I have:<br>
&gt; &gt; [HelpBrowser open] timeToRun<br>
&gt; &gt; =&gt; 6099<br>
&gt; &gt;<br>
&gt; &gt; After the fix I have:<br>
&gt; &gt; [HelpBrowser open] timeToRun<br>
&gt; &gt; =&gt; 3094<br>
&gt; &gt;<br>
&gt; &gt; Naturally, tests are kept green.<br>
&gt; &gt;<br>
&gt; &gt; Cheers,<br>
&gt; &gt; Alexandre<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:<br>
&gt; &gt; Alexandre Bergel  <a href="http://www.bergel.eu" target="_blank">http://www.bergel.eu</a><br>
&gt; &gt; ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Mariano<br>
&gt; &gt; <a href="http://marianopeck.wordpress.com" target="_blank">http://marianopeck.wordpress.com</a><br>
&gt; &gt;<br>
&gt;<br>
&gt; --<br>
&gt; _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:<br>
&gt; Alexandre Bergel  <a href="http://www.bergel.eu" target="_blank">http://www.bergel.eu</a><br>
&gt; ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Mariano<br>
&gt; <a href="http://marianopeck.wordpress.com" target="_blank">http://marianopeck.wordpress.com</a><br>
&gt;<br>
<br>
</div></div>--<br>
<div><div></div><div class="h5">_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:<br>
Alexandre Bergel  <a href="http://www.bergel.eu" target="_blank">http://www.bergel.eu</a><br>
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.<br>
<br>
<br>
<br>
<br>
<br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Mariano<br><a href="http://marianopeck.wordpress.com" target="_blank">http://marianopeck.wordpress.com</a><br><br>