Skip to content

doxygen runtime went from 10minutes to >14hours (lots of using namespace) #9266

@martinus

Description

@martinus

Describe the bug
Newest doxygen version is impracticably slow when there are lots of using namespace in the code. I stopped generating after 14 hours. Older versions take 10 minutes for the same codebase.

Expected behavior
Don't take forever

To Reproduce
Unfortunately I cannot share our code. It might be reproducible with several files and lots of namespaces, I can try to do that if you think that helps

Version
I checked out the latest version, and did a git bisect to find out when the slowdown was introduced. It first happened in this commit: 8a93f4e. Before this commit a stripped down codebase takes 0.5 seconds to generate, after that commit I stopped it after several minutes. I did all my tests in Linux, with clang++

Stack trace
I used hotspot to figure out where doxygen was hanging (for this I built master), and got this flamegraph:
image

Additional context
Looking at the changes in 8a93f4e I suspect the issue is now too often a fresh AccessStack or VisitedNamespaces or StringUnorderedSet is used when previously a non-empty container was used

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions