vscode-cpptools icon indicating copy to clipboard operation
vscode-cpptools copied to clipboard

Support for recursive includes may be more efficient without tag parse phase to limit set of paths

Open Colengms opened this issue 2 years ago • 1 comments

Currently, use of recursive includes (i.e. (<path>/**) incurs some overhead prior to TU creation, in order to reduce the set of subdirectory paths to only the paths in which headers are actually included. If not already populated in the database, this incurs tag parsing of all headers in the TU, before allowing TU creation to proceed. The performance impact of this approach is particularly significant for newly opened projects, as files have not yet been tag parsed.

This also incurs overhead due to frequently needing to update the configuration of the TU as events occur which might change which headers the source file includes.

It's unclear whether the issue this approach was originally intended to address (significantly more IntelliSense process memory being required when many paths are provided) still exists, as related improvements have been made there. It's possible that the simple approach of providing all subdirectories to the IntelliSense engine, may now be more efficient.

Colengms avatar Dec 13 '23 22:12 Colengms

This potentially addresses #5128

bobbrow avatar Dec 18 '23 23:12 bobbrow