Notgnoshi / includegraph

Generate preprocessor #include dependency graphs from a Clang compilation database

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Improve parsing speed

Notgnoshi opened this issue · comments

  • Perhaps this is as simple as removing the graph generation logging. I think the logs that are still important are
    • DEBUG - compiler invocation for each TU
    • WARNING - compile failure on a TU
    • DEBUG - number of linemarkers from a TU?
    • INFO - graph statistics?
  • Depending on what the bottleneck is, it might make sense to run the compiler, linemarker parser, and graph generation in separate threads connected with queues. This means the compiler doesn't need to wait for the linemarker parsing to start a new TU.
  • It might also make sense to use thread pools and parse multiple files in parallel
  • It might be beneficial to use line.startswith(b"#") to skip the majority of lines before trying the LINEMARKER_PATTERN regex