一句话:提出 Panda,一种独立于编译过程并发调度多种 C/C++ 静态分析工具的调度器,显著缩短总执行时间。
广泛使用的基于编译器的工具(CBT,如静态分析器)通常通过注入编译过程来运行,但存在多工具运行不便、与编译器相互干扰以及编译依赖下效率下降等问题。为此,本文提出 Panda,一种面向 C/C++ CBT 的高效调度器。它让多种 CBT 以独立于编译的方式执行,避免与构建系统相互干扰,并基于估计的 makespan 并行执行进程以提高效率。评估表明,与编译耦合执行相比,Panda 将总执行时间减少 19%–47%,在 64 个并行工作单元下平均加速 39.03×–52.15×。
The widely-used Compiler-Based Tools (CBT), such as static analyzers, process input source code using data structures inside a compiler. CBTs can be invoked together with compilers by injecting the compilation process. However, it is seldom the best practice for the inconvenience of running various CBTs, the unexpected failures due to interference with compilers, and the efficiency degradation under compilation dependencies. To fill this gap, we propose Panda, an efficient scheduler for C/C++ CBTs. It executes various CBTs in a compilation-independent manner to avoid mutual interference with the build system, and parallels the process based on an estimated makespan to improve the execution efficiency. The assessment indicates that Panda can reduce the total execution time by 19%–47% compared with compilation-coupled execution, with an average 39.03×–52.15× speedup with 64 parallel workers.