Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Newer version using a lot of RAM compared to older version #10253

Closed
macawkitty opened this issue Aug 22, 2023 · 6 comments
Closed

Newer version using a lot of RAM compared to older version #10253

macawkitty opened this issue Aug 22, 2023 · 6 comments

Comments

@macawkitty
Copy link

Describe the bug
Doxygen 1.9.7 is using upwards of 20GB RAM compared to 1.9.1 which uses ~11GB with the same config and on the same machine.

Expected behavior
Newer version needs RAM at most as much as the older version needed.

@macawkitty macawkitty changed the title Doxygen using a lot of RAM compared to older version Newer version using a lot of RAM compared to older version Aug 22, 2023
@albert-github albert-github added the needinfo reported bug is incomplete, please add additional info label Aug 22, 2023
@albert-github
Copy link
Collaborator

Without knowing which OS , where you got the exectables (and type of executables: release, debug, ...), and example it is hard to tell what the problem is.

Newer version needs RAM at most as much as the older version needed.

cannot be guaranteed by any program due to e.g. new features, bug fixes etc.

@doxygen
Copy link
Owner

doxygen commented Aug 23, 2023

To make it easier to quantify the issue, I ran doxygen on its own code with version 1.9.1 and then again on master using valgrind's massif tool.

Version 1.9.1 shows a relatively small memory usage peak after parsing (148 MB):

massif_1 9 1

The latest version has a significantly higher peak (430 MB)

massif_1 9 8

After that the memory usage is still higher, but not extremely so (162MB → 208MB, or a 28% increase).

Still need to investigate why the difference is so big and if it can be reduced.
Note that version 1.9.1 was still using qtools, whereas later versions switched to STL classes.
Note also that I set NUM_PROC_THREADS to 1 and HAVE_DOT to NO to prevent threading or external tool impact.

@albert-github
Copy link
Collaborator

To make it easier to quantify the issue, I ran doxygen on its own code with version 1.9.1 and then again on master using valgrind's massif tool.

It is not 100% clear to me what you computed, did you compute:

  1. either
    • doxygen 1.9.1 on the doxygen 1.9.1 code
    • doxygen master on the doxygen master code
  2. or
    • doxygen 1.9.1 on the doxygen 1.9.1 code
    • doxygen master on the doxygen 1.9.1code
  3. or
    • doxygen 1.9.1 on the doxygen master code
    • doxygen master on the doxygen master code

(as version 1. would not make any sense, in my opinion, for comparing the results).

@doxygen
Copy link
Owner

doxygen commented Aug 23, 2023

@albert-github I used option 3) both executables run on the master code. I also did a dry run for each before doing the actual valgrind run to avoid any caching effects.

@doxygen
Copy link
Owner

doxygen commented Aug 23, 2023

With the referenced commit, the memory profile looks a lot better, and more similar to version 1.9.1:

massif_1 9 8_fix

@macawkitty Can you check if this also makes a significant difference in your project?

@doxygen doxygen added fixed but not released Bug is fixed in github, but still needs to make its way to an official release and removed needinfo reported bug is incomplete, please add additional info labels Aug 25, 2023
@doxygen
Copy link
Owner

doxygen commented Aug 25, 2023

This issue was previously marked 'fixed but not released',
which means it should be fixed in doxygen version 1.9.8.
Please verify if this is indeed the case. Reopen the
issue if you think it is not fixed and please include any additional information
that you think can be relevant (preferably in the form of a self-contained example).

@doxygen doxygen removed the fixed but not released Bug is fixed in github, but still needs to make its way to an official release label Aug 25, 2023
@doxygen doxygen closed this as completed Aug 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@doxygen @albert-github @macawkitty and others