CEDET scalability tips

Viewed 3126

I use CEDET (latest CVS) with several moderately large projects (a few hundred kLOCs each, mostly C, but some C++) and sometimes experience long pauses in which the system is completely unresponsive for seconds. More rarely, it spins out of control completely and I have to mash on C-g and try to move the cursor or switch to a different buffer to get control back.

I use GNU Global to create tags for the projects I work with, but this is still sometimes slow, especially for semantic-symref-symbol, and some jumps that seem to require parsing lots of headers and source files. In some cases semantic-ia-fast-jump errors with the message semantic-ia--fast-jump-helper: Tag SomeFunction has no buffer information even though gtags-find-tag finds it immediately (in the same project), though perhaps at an out-of-date location; this may be a temporary bug, usually semantic-ia-fast-jump is reliable.

I would appreciate any suggestions on how to

  • Throttle CEDET without losing all the semantic analysis.
  • Find out what caused CEDET to spin out of control so I can fix my project definitions or file a bug report.
  • Determine why some semantic analysis is failing.
  • Get semantic to cache more information to make it more responsive, I have lots of memory that I'd like to use.
  • Manage GNU Global (create and keep current) for multiple projects in different places, including system directories.
  • Manage dependencies between projects that I have configured with ede-cpp-root-project.
  • Manage projects that have multiple build configurations, each with its own "config.h" and build directory.

There are a few tips in the article http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html, I'm looking for anything beyond that article.

1 Answers
Related