Opened 8 years ago

Closed 4 months ago

IWikiSyntaxProvider with doxygen SEARCH_ENGINE unusable slow for large code-bases

Reported by: Owned by: mgerth@… cboos normal DoxygenPlugin minor 0.11

Description

Case:

1. search engine is enabled in doxygen
2. the doxygen-html-code base is large
3. a simple WIKI-page is loaded by the user

--> the WIKI-Syntax-provider of the DoxygenPlugin stalls the whole server for up to 5 seconds with 100% CPU usage when loading any simple wiki-page.

my current workaround (with lost functionality) is:

file: doxygentrac.py

_doxygen_lookup(self, segments):
...

# Request for a named object
# TODO:
#  - do something about dirs
#  - expand with enum, defs, etc.
#  - this doesn't work well with the CREATE_SUBDIRS Doxygen option
path, link = lookup('class%s.html' % file, 'class')
if not path:
path, link = lookup('struct%s.html' % file, 'struct')
if path:

# Revert to search
>>>>>>> return ('search', None, None) # bail out for performance issues <<<<<<<<<<

results = self._search_in_documentation(doc, [file]) << this is never called now and he rest of this function can not be used at the moment in our case


It would be nice to have a trac.ini - configuration option to disable the last branch, instead of hard-coding the return. I think optimizing the search_in_documentation function would take more time, and it is not needed that much.

Best Regards

comment:1 Changed 8 years ago by Blackhex

• Owner changed from Blackhex to cboos

comment:2 Changed 4 months ago by Committo-Ergo-Sum

• Resolution set to fixed
• Status changed from new to closed

Performance issues seem to be solved in version > 0.11.

comment:3 Changed 4 months ago by cboos

That's great news, I'll try to find some time to test all your enhancements.