Yes, but I have no idea. Another thing is that now HelpBrowser should implement something like:
HelpBrowser >> cleanUp self resetChache >> resetCache helpTopicCache := nil 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. Cheers Mariano On Sat, Apr 30, 2011 at 4:58 PM, Alexandre Bergel <[email protected]>wrote: > You'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. > > I think that ideally, the reset cache should be done when receiving an > event of a class creation that is a help. > > Alexandre > > > On 30 Apr 2011, at 09:29, Mariano Martinez Peck wrote: > > > Cool! Thanks Alexandre. Now...the problem with the cache is always the > same...when to invalidate them. > > In this case, when do I need to set helpTopicCache to nil. I guess that > if you create a help, then it is "automatically" detected when you open the > browser. > > Now, you have to explicitly flush the cache, haven't you? So...is there > some documentation of HelpSystem that should be updated to reflect that ? > > > > Thanks > > > > On Sat, Apr 30, 2011 at 3:15 AM, Alexandre Bergel < > [email protected]> wrote: > > > MessageTally time: [HelpBrowser open] between 2 seconds in Cog and > with a regular VM between 6 and 8.... > > > is there an easy way to improve it ? > > > > > > Alexandre, do you want another place where to put a cache like > Metacello's currentVersion? ;) > > > > :-) > > Sure. Easy. > > > > SystemHelp>>allSystemHelpPragmas takes time. When you open a browser, the > method HelpBrowser>>open is called once and SystemHelp>>allSystemHelpPragmas > twice. Easy to suspect that a cache is missing. > > > > So, if you define > > -=-=-=-=-=-=-=-=-= > > HelpBrowser>>helpTopic > > ^ helpTopicCache ifNil: [ helpTopicCache := rootTopic asHelpTopic > ] > > -=-=-=-=-=-=-=-=-= > > > > and adapt HelpBrowser>>refresh you win 50% of execution time. > > > > Here is it: > > > > > > http://code.google.com/p/pharo/issues/detail?id=4126 > > > > Before this fix, I have: > > [HelpBrowser open] timeToRun > > => 6099 > > > > After the fix I have: > > [HelpBrowser open] timeToRun > > => 3094 > > > > Naturally, tests are kept green. > > > > Cheers, > > Alexandre > > > > -- > > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > > Alexandre Bergel http://www.bergel.eu > > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > > > > > > > > > > > > > > > > > -- > > Mariano > > http://marianopeck.wordpress.com > > > > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > > > > -- Mariano http://marianopeck.wordpress.com
