incubator-jspwiki-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexey Kakunin <>
Subject Reference Manager perfomance
Date Tue, 07 Apr 2009 14:58:18 GMT

On we have a quite big problem related to ReferenceManager:
actually, application start takes about 10-15 minutes, and most of time it
spent in ReferecenManager.initialize method (hm - how long takes
to start?)

Actually, I suppose it is because we have many (even sometimes empty) pages
(becasue for each task wiki-page with description is created), and ,
referenceManager is called

// Refresh with the latest copy
page = m_engine.getPage( page.getName() );

for each page.

I wanted to work on some reimplementation of ReferenceManager, but found,
WikiEngine is used it directly (not via some Interface) - so, I cannot
simple implement another implementation (like it is possible to do for
PageProviders for example) and use it instead of default.

Also, since most of methods/attributes of this class are private, I cannot
simple inherint my class from this implementation and reuse already
implemented functionality.

So, I have some suggestions:

1. Define interface for ReferenceManager
2. Make it possible to control ReferenceManager implementation used via
3. Move methods in current implementatino from private to protected (to make
it reusable)

Also, another question - if I underastand - referencemanager during
initialization just updated and recreated it's information. It is required
in cases, then pages were changed during WikiEngine restarts (if I
understand correctly).

But, if it is not happens - I hope this refreshing is not required. So,
probably - allow to simple pass into ReferenceManager a flag, said - do we
need to refresh pages or not
It  should help us to save time during start dramatically (I hope)

Is all of these changes are OK? If yes - I may try to implement them and
send new version to community

With Best Regards,
Alexey Kakunin, EmDev Limited

Professional Software Development:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message