The direct cost of virtual function calls in C++

  • Authors:
  • Karel Driesen;Urs Hölzle

  • Affiliations:
  • Department of Computer Science, University of California, Santa Barbara, CA;Department of Computer Science, University of California, Santa Barbara, CA

  • Venue:
  • Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

We study the direct cost of virtual function calls in C++ programs, assuming the standard implementation using virtual function tables. We measure this overhead experimentally for a number of large benchmark programs, using a combination of executable inspection and processor simulation. Our results show that the C++ programs measured spend a median of 5.2% of their time and 3.7% of their instructions in dispatch code. For "all virtuals" versions of the programs, the median overhead rises to 13.7% (13% of the instructions). The "thunk" variant of the virtual function table implementation reduces the overhead by a median of 21% relative to the standard implementation. On future processors, these overheads are likely to increase moderately.