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
