Not to put too fine a point on it, TWiki needs a lot of work on performance. As of
TWikiRelease04x00x00, here's what I
think are the performance killers.
- Code bloat. Compilation accounts for a heck of a lot of unaccelerated runtime.
- Inefficient APIs loading down the code (e.g.
beforeSaveHandler in Func).
- TWikiPreferences - the whole "site-web-topic" scheme for preferences.
- TWikiAccessControls are horrendously nasty, and need to be taken out of band.
- Searching.
Beyond that, someone needs to try and precompile TWiki (I tried and failed).
Oh, and there's definitely scope for increased use of delayed evaluation using
REST interfaces.
--
CrawfordCurrie - 15 Feb 2006
Could we get some actual measurements on any of this? Hard to know where to start otherwise.
--
MeredithLesly - 14 Apr 2006
i'm going to commit and updated version of the
UserMapping change that I put into DEVELOP - its getting a 6-20% performance boost (measured by benchmark.pl).
Bugs:Item1651
--
SvenDowideit - 21 Apr 2006
About measurements: I'm about to compile my thoughts of how to do
MeasuringTWikiPerformance.
--
HaraldJoerg - 24 Apr 2006
There's a lot of existing material - don't forget it. See
CategoryPerformance.
--
CrawfordCurrie - 25 Apr 2006
Thanks! There's also a short article about profiling (
DynamicFunctionCoverage) and sort of a predecessor of
MeasuringTWikiPerformance (
ExaminingPerformance). Some articles which popped up in
WebChangesForAllWebs due to adding the category, however, had their last content change in 2001 or 2002, I doubt they're useful for
TWiki04x00Release...
--
HaraldJoerg - 28 Apr 2006
Lazy-loading of
TWikiVariables does
not appear to be a magic bullet. Sigh. Not that we really expected it to be, I guess.
--
MeredithLesly - 28 Apr 2006
One quick one might be to defaultly publish known to be static using
PublishContrib or
PublishWeb: automatic publish on save would suffice in many cases.
--
MartinCleaver - 03 May 2006
Another thing that would help is to send the editing gadget up with view. This way people can instantly edit because the browser has all the code it needs (including the raw text) to allow someone to start immediately.
--
MartinCleaver - 03 May 2006