一句话:通过构建新数据集与多框架评估,发现调用图剪枝在提升精度的同时造成显著覆盖率损失,并揭示原有评估方法的缺陷。
近期提出的基于机器学习的调用图剪枝技术声称能减少静态调用图中的假阳性并提升下游分析实用性。然而,这些工作在数据集构建与评估方法上存在诸多风险因素,可能导致报告结果不完整甚至无效。本文通过实证研究揭示这些因素确实产生误导性结果,并重新评估现有剪枝技术的有效性。作者构建了真实程序的新数据集,采用三种互补标注方法得到41,952个标签,并在WALA、Doop、OPAL三个分析框架的七种配置下进行实验。结果表明,剪枝并非如先前工作所报告的那样有效:它在提升精度的同时造成显著的覆盖率损失。此外,跨工具与配置训练的通用模型往往能匹配甚至超越特定配置模型,表明其更广泛的适用性。最后,论文指出开放挑战与潜在解决方案,包括需要更好的数据集和改进特征工程。
Recently proposed call graph pruning techniques, which use machine learning to predict and reduce false positives in static call graphs, have reported impressive results and demonstrated practicality for downstream analyses. However, as we research the methodology of how datasets are created and how evaluation is conducted in these research projects, we identify many risk factors that may make the reported results incomplete or even invalid. We further investigate these factors and provide empirical evidence to demonstrate they indeed result in misleading results. Motivated by these findings, we propose an empirical re-evaluation of existing call graph pruning techniques to assess their effectiveness. We first construct a new dataset of real-world programs, applying three complementary labeling approaches, resulting in 41,952 labels. To provide a full picture of these techniques, we utilize three popular call graph analysis frameworks (WALA, Doop, and OPAL) and seven tool configurations. Our results show that pruning is not as effective as reported in prior work, improving precision at the cost of significant coverage loss. We further train more general models across analysis tools and configurations, and explore the impact of data splitting and balancing. We find these models often match or outperform the existing configuration-specific ones, indicating their applicability in more general settings. Finally, we highlight the open challenges and potential solutions, including the need for better datasets as well as improved feature engineering.