在linux环境使用命令行启动,工程是cmake编译的。
使用cppcheck2.13默认直接检查代码花费1.5h
相比之前
使用的cppcheck2.6默认直接检查相同代码只花费1-2分钟
如果选择了--prjfile compile_commands.json 检查真正的宏定义配置和真实编译文件速度会更慢。
之前2.6可以集成进Jenkins自动化检查,现在这个速度完全没法做完自动检查一部分了,英文论坛去搜索slow没有找到有人说这个,来问问csdn有没有人遇到这种情况。
在linux环境使用命令行启动,工程是cmake编译的。
使用cppcheck2.13默认直接检查代码花费1.5h
相比之前
使用的cppcheck2.6默认直接检查相同代码只花费1-2分钟
如果选择了--prjfile compile_commands.json 检查真正的宏定义配置和真实编译文件速度会更慢。
之前2.6可以集成进Jenkins自动化检查,现在这个速度完全没法做完自动检查一部分了,英文论坛去搜索slow没有找到有人说这个,来问问csdn有没有人遇到这种情况。
引自免费微信小程序:皆我百晓生
面对您描述的问题,我们可以尝试以下几个步骤来优化cppcheck的执行速度:
find_package(Cppcheck REQUIRED)
add_custom_target(check ALL
${Cppcheck_EXECUTABLE} --enable=all --inconclusive ${SOURCE_FILES})
这里SOURCE_FILES
应该替换为实际的源文件列表。
cppcheck -I <include_path> --project=<compile_commands.json> <directory_or_file>
--threads
选项可以启用并行检查。这可能会加快执行速度,但具体效果取决于您的硬件资源(CPU核心数):cppcheck -I <include_path> --project=<compile_commands.json> --threads=4 <directory_or_file>
--suppress
选项来抑制一些警告:cppcheck -I <include_path> --project=<compile_commands.json> --suppress="rule_name" <directory_or_file>
使用旧版插件: 如果可能的话,尝试回退到2.6版本的cppcheck插件,看看是否能恢复之前的性能。如果这样做有效,您可能需要联系cppcheck开发者报告这个问题,或者寻找其他替代品。
调整cppcheck配置: 根据您的项目特点,尝试调整cppcheck的一些配置选项,比如减少冗余检查、优化内存使用等。查阅cppcheck的官方文档,了解更多的配置选项。
使用静态分析工具对比: 尝试使用其他静态分析工具(如Clang-Tidy或PVS-Studio),看它们在您的项目上的表现如何。这些工具可能有不同的性能特性,也许其中某一个更适合您的需求。
优化系统资源: 确保您的Linux系统有足够的内存和CPU资源用于cppcheck。如果可能,尝试清理不必要的进程,或者分配更多资源给cppcheck。
硬件升级: 如果上述方法都无法满足要求,考虑升级硬件,尤其是增加RAM和使用更快的CPU,以提升整体性能。
提交bug报告: 如果经过以上优化后,cppcheck的性能仍然显著降低,建议您向cppcheck项目的GitHub仓库提交一个bug报告,提供详细的配置信息和测试案例,以便开发人员进行调查。
希望以上的建议对您有所帮助。如果还有任何疑问,请随时提问。