[Pharo-project] HelpBrowser takes too much time to open

laurent laffont laurent.laffont at gmail.com
Sat Apr 30 17:17:55 CEST 2011


Note that HelpBrowser has a "Refresh" button so it should clear the cache.

Laurent

On Sat, Apr 30, 2011 at 4:27 PM, Mariano Martinez Peck <
marianopeck at gmail.com> wrote:

> 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
>
> cheers
>
> mariano
>
>
> On Sat, Apr 30, 2011 at 5:07 PM, Alexandre Bergel <alexandre.bergel at me.com
> > wrote:
>
>> Yes, but this depends what is the expected behavior of the browser. I like
>> the Agile approach that says you're done when all the tests are green :-)
>>
>> Alexandre
>>
>>
>> On 30 Apr 2011, at 10:02, Mariano Martinez Peck wrote:
>>
>> > 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 <
>> alexandre.bergel at me.com> 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 <
>> alexandre.bergel at me.com> 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
>> >
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110430/66100d20/attachment.htm>


More information about the Pharo-project mailing list