gpt4 book ai didi

c++ - libclang 翻译单元重新解析缓慢

转载 作者:太空狗 更新时间:2023-10-29 23:08:30 25 4
gpt4 key购买 nike

我有一个 c++ 文件,它会更改,其余所有头文件保持不变。但是每当我重新解析一个翻译单元时,libclang 最终会消耗大量的 cpu 和 ram。虽然它使用预编译头和所有(我可以看到生成的前导文件)但它仍然需要相当多的资源和时间。

这是我的代码片段。

translation_unit_ = clang_parseTranslationUnit(index_, 0, clang_argv[0],
clang_argv.size() - 1, 0, 0,
clang_defaultEditingTranslationUnitOptions());
// File name is in the arguments.


// Here I reparse again every time file changes.
clang_reparseTranslationUnit(translation_unit_, 0, 0,
clang_defaultReparseOptions(translation_unit_));

// This is how I get diagnositics
CXDiagnostic diag = clang_getDiagnostic(translation_unit_, i);

任何人都可以建议我正确设置以在单个不断变化的源文件中反复查找编译错误吗?

最佳答案

您在初始索引中使用 clang_defaultEditingTranslationUnitOptions(),稍后使用 clang_defaultReparseOptions()。尝试在这两个地方使用 clang_defaultEditingTranslationUnitOptions()

此外,不要指望重新解析源代码会非常快 - 重新检查每一个更改导致任何重要源文件的性能不佳。您能否在最后一次更改后等待几毫秒,看看是否可以将多个更改累积到一个重新解析中?

关于c++ - libclang 翻译单元重新解析缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9374933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com