  While high-level languages come with significant readability and
maintainability benefits, their performance remains difficult to predict. For
example, programmers may unknowingly use language features inappropriately,
which cause their programs to run slower than expected. To address this issue,
we introduce feature-specific profiling, a technique that reports performance
costs in terms of linguistic constructs. Feature-specific profilers help
programmers find expensive uses of specific features of their language. We
describe the architecture of a profiler that implements our approach, explain
prototypes of the profiler for two languages with different characteristics and
implementation strategies, and provide empirical evidence for the approach's
general usefulness as a performance debugging tool.
