Revision 608183

Go back to digest for 3rd December 2006

Optimization in Development Tools

David Nolden committed changes in /branches/kdevelop/3.4:

Implement a powerful caching-mechanism for preprocessing included files. The driver manages a lexer-cache of limited size that stores multiple variants of lexed files including their exact dependency-information that can be used to exactly determine whether the file needs to be lexed again under current driver's state, or whether the results of a previous run can be used.

This makes the header-parsing mode usable for every-day-use, and lightning fast for example while editing a file and the same file needs to be parsed again and again!

Parsing kdevelop-3 still takes more time than without header-preprocessing, but it's another order of magnitude compared to before.

Note: This might also become useful for kdevelop-4.

File Changes

Modified 10 files
  • /branches/kdevelop/3.4
  •   /languages/cpp/backgroundparser.cpp
  •   /languages/cpp/backgroundparser.h
  •   /languages/cpp/cppsupportpart.cpp
  •   /languages/cpp/cppsupportpart.h
  •   /lib/cppparser/driver.cpp
  •   /lib/cppparser/driver.h
  •   /lib/cppparser/lexer.cpp
  •   /lib/cppparser/Makefile.am
  •   /lib/interfaces/hashedstring.cpp
  •   /lib/interfaces/hashedstring.h
10 files changed in total