Currently the CppAstNodeMetrics table is cleaned up during incremental parsing by iterating through all stored entities, querying the related CppAstNode, then the appropriate file. After that, CppAstNodeMetrics entities related to a deleted or modified file are erased.
I propose a likely more memory and time efficient approach: since the CppFileMetrics table is also maintained through the same logic (looking for entities related to a modified or deleted file), we could erase the related CppAstNodeMetrics entities in the same loop. (Probably a new ODB view is required to connect the CppAstNodeMetrics table to the files.)
Currently the
CppAstNodeMetrics
table is cleaned up during incremental parsing by iterating through all stored entities, querying the relatedCppAstNode
, then the appropriate file. After that,CppAstNodeMetrics
entities related to a deleted or modified file are erased.I propose a likely more memory and time efficient approach: since the
CppFileMetrics
table is also maintained through the same logic (looking for entities related to a modified or deleted file), we could erase the relatedCppAstNodeMetrics
entities in the same loop. (Probably a new ODB view is required to connect theCppAstNodeMetrics
table to the files.)