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.
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