Contents
Here are current profiling results for several pages.
Developer information
Setting up a profiling environment
How setup a profiling environment in less then 5 minutes:
- Setup standalone server in your wiki directory
- Open moin.py, uncomment the hotshot profile lines: - # Hotshot profile (default commented) import hotshot hotshotProfile = hotshot.Profile("moin.prof")
- Copy MoinMoin/scripts/print_stats.py to your wiki dir 
How to run a profile
- Run moin.py 
- Do some request using a browsers or ab
- Quit moin.py 
- Run python print_stats.py moin.prof 
Profiles
- /EmptyPage - The general overhead of the wiki 
- /HugePage - Very long page, only text 
- /RecentChanges - The most important page, dynamic 
- /FrontPage - The most visited page 
- /SearchTitles - Very important for a wiki, should be very fast 
- /SearchText - Very important for a wiki 
- /TitleIndex - Page with links to all pages 
- /CategoryPage - Using search macros 
- /GetRevCallStack - Get_Rev is the most used function in our code. Mostly because it is called too often and in useless cases. 
- /OldProfiles - old stuff we should sort or delete 
- /FileSystem - how MoinMoin accesses the file system 
System information
See /SystemInformation for the configuration of the developers which publish profile data.
Profiling hints
The most annoying problem are the regressions compared to MoinMoin 1.2.x. So we should profile a simple test case for 1.2 and 1.3. Then we can compare the profiles and spot the new bottle necks.
Things to improve
- Use a caching SRE compiler. Bastian prepared some code ... - SRE calls are in the top 5 of the Moin 1.3 profile
 
Groups
Things to fix:
- check on save if any group file haas changed and update only the changed file
- make ACL code load groups only when needed
Speed up CGI
 should be updated after import stuff fix, as it affects lots of code.
 should be updated after import stuff fix, as it affects lots of code. 
- If you request the standard FrontPage: - 33% of the time is spent in request.__init__ 2004-12-17 - 50% in RequestBase.__init__ 
- 50% in RequestCGI.__init__ 
- it is not easy to optimise that - much of it is config loading
 
 
- 27% of the time is spent in wikiutil.send_title 2004-12-17 - 66% in modern:Theme.header - editbar and navibar are slow
 
 
 
