Improving Static Analysis Performance Using Rule-Filtering Technique.
Deng Chen, Rubing Huang, Binbin Qu, Sheng Jiang · Software Engineering and Knowledge Engineering · 2014
Static analysis is an efficient approach for software assurance. It is indicated that the most effective usage of it is to perform analysis in an interactive way through software development process, which has a high performance requirement. This paper concentrates on rule-based static analysis tools and proposes an optimized rule-checking algorithm to improve their performance. Our technique filters rules according to their characteristic objects before checking the rules against a specific source file. It is based on an observation that a source file always contains vulnerabilities of a small part of rules rather than all. To investigate our technique’s feasibility and effectiveness, we implemented it in an open source static analysis tool called PMD and used it to perform an evaluation. The evaluation results show that our approach can get an average performance promotion of 28.7% compared with original PMD. Additionally, our technique incurs trivial runtime overhead. Keywordsrule-based static analysis; software quality; software validation; performance improvement