I'm running Doxygen on huge project for the third time but it seems to take as much as the first time. Is it possible to enable the caching of parsed files that haven't changed?
Asked
Active
Viewed 2,687 times
1 Answers
0
The size of the symbol lookup cache can be set. The config item is LOOKUP_CACHE_SIZE. I've not used doxygen for a long time so I refer you to the docs here: Doxygen Config
EDIT: You say you need the dependency graphs. Can you reduce the graph depth?
You could try turning off the SEARCH_INCLUDES option. Then it will only reference your files and not the supporting SDK etc.
If it makes no difference increasing the size to high value, perhaps you can run the documentation command overnight, or defer it to another machine?
you could try tag files, which are explained in this question: doxygen is slow
I hope this helps. Your project sounds larger than the ones I've used doxygen with in the past.

albert
- 8,285
- 3
- 19
- 32

VictorySaber
- 3,084
- 1
- 27
- 45
-
Even with this, doxygen seems to generate all documentation files over again, although little (or none at all) has changed in source project. – Tomáš Zato Sep 17 '15 at 11:27
-
I don't know how to count it. It's 32MB of source in main project, then there are some libraries. – Tomáš Zato Sep 17 '15 at 12:17
-
Turn off SEARCH_INCLUDES and see how quick it is without the libraries. You could always run Doxygen on a per-module basis. If nothing has changed in a module, you have no reason to run it on there. – VictorySaber Sep 17 '15 at 13:32
-
Did changing the cache size really not do anything? Set to 9 you should be able to store up to 65,536 symbols in the cache. – VictorySaber Sep 17 '15 at 13:34
-
I need to search includes. I was running doxygen to be able to see dependency graphs. My problem is, that it generates files over again even though the source has not changed at all. Compare to compilation - compiler only re-compiles .obj files that have their source files changed. – Tomáš Zato Sep 17 '15 at 13:49
-
Doxygen does no caching with the exception for a number of graphs which are identified through their md5 value and if the md5 sum does not change the graph is not regenerated, all the rest is regenerated. The mentioned LOOKUP_CACHE_SIZE is used for a lookup cache for the current run only (see documentation for its meaning). Doxygen is a disk intensive program (writing out all the information, so checking the effect of a faster disk might be worthwhile as well. – albert Sep 17 '15 at 17:25
-
@albert In the company where I work SSD and loads of RAM are already standard, so I don't think there's much more to do in terms of equipment. All you can do is make things bigger and more expensive... – Tomáš Zato Sep 18 '15 at 15:26
-
2What part of the time is doxygen actually parsing (i.e. says it is parsing and preprocessing) and which part of the time it is doing other things? This would give you an idea how much one could gain by caching parsed results. My expectation: not all that much, so that's why I never put that much effort in it (it would add *a lot* of complexity). – doxygen Sep 19 '15 at 11:27