Title :
Perflint: A Context Sensitive Performance Advisor for C++ Programs
Author :
Liu, Lixia ; Rus, Silvius
Author_Institution :
Dept. of Comput. Sci., Purdue Univ., West Lafayette, IN
Abstract :
We present perflint, a new industrial strength open source analysis tool that identifies suboptimal use patterns of the C++ standard library. Simply by recompiling and running on a representative input set, programmers receive context sensitive performance advice on their use of standard library data structures and algorithms. Our solution consists of collecting traces of relevant library operations and state during program execution, and then recognizing patterns for which there is a faster alternative, based on a model made of performance guarantees in the C++ language standard and machine knowledge. perflint has already found hundreds of suboptimal patterns in a set of large C++ benchmarks. In one case, following the advice and changing one line of code resulted in 17% program run time reduction.
Keywords :
C++ language; data structures; object-oriented programming; program compilers; program diagnostics; public domain software; software libraries; C++ language standard; C++ program; C++ standard library; context sensitive performance advisor; data structure; industrial strength open source analysis tool; machine knowledge; pattern recognition; perflint; program execution; program recompilation; Computer science; Containers; Costs; Data structures; Libraries; Pattern analysis; Pattern recognition; Program processors; Programming profession; Wrapping; C++; STL; advisor;
Conference_Titel :
Code Generation and Optimization, 2009. CGO 2009. International Symposium on
Conference_Location :
Seattle, WA
Print_ISBN :
978-0-7695-3576-0
DOI :
10.1109/CGO.2009.36