Hardware performance monitoring counters have recently received a lot of attention. They have been used by diverse communities to understand and improve the quality of computing systems: for example, architects use them to extract application characteristics and propose new hardware mechanisms; compiler writers study how generated code behaves on particular hardware; software developers identify critical regions of their applications and evaluate design choices to select the best performing implementation. In this paper, we propose that counters be used by all categories of users, in particular non-experts, and we advocate that a few simple metrics derived from these counters are relevant and useful. For example, a low IPC (number of executed instructions per cycle) indicates that the hardware is not performing at its best; a high cache miss ratio can suggest several causes, such as conflicts between processes in a multicore environment. We also introduce a new simple and flexible user-level tool that collects these data on Linux platforms, and we illustrate its practical benefits through several use cases.
A. Cal\`ı, G. Gottlob, and T. Lukasiewicz. Proceedings of the 12th International Conference on Database Theory, page 14--30. New York, NY, USA, ACM, (2009)
R. Angles, and C. Gutierrez. The Semantic Web: Research and Applications, volume 3532 of Lecture Notes in Computer Science, Springer Berlin Heidelberg, (2005)
A. Das Sarma, X. Dong, and A. Halevy. Proceedings of the 2008 ACM SIGMOD international conference on Management of data, page 861--874. New York, NY, USA, ACM, (2008)
C. Hedeler, and N. Paton. Advances in Databases, volume 7051 of Lecture Notes in Computer Science, Springer Berlin / Heidelberg, 10.1007/978-3-642-24577-0_11.(2011)
P. Talukdar, Z. Ives, and F. Pereira. Proceedings of the 2010 international conference on Management of data, page 387--398. New York, NY, USA, ACM, (2010)