English

Warrior1: A Performance Sanitizer for C++

Software Engineering 2020-10-20 v1

Abstract

This paper presents Warrior1, a tool that detects performance anti-patterns in C++ libraries. Many programs are slowed down by many small inefficiencies. Large-scale C++ applications are large, complex, and developed by large groups of engineers over a long period of time, which makes the task of identifying inefficiencies difficult. Warrior1 was designed to detect the numerous small performance issues that are the result of inefficient use of C++ libraries. The tool detects performance anti-patterns such as map double-lookup, vector reallocation, short lived objects, and lambda object capture by value. Warrior1 is implemented as an instrumented C++ standard library and an off-line diagnostics tool. The tool is very effective in detecting issues. We demonstrate that the tool is able to find a wide range of performance anti-patterns in a number of popular performance sensitive open source projects.

Keywords

Cite

@article{arxiv.2010.09583,
  title  = {Warrior1: A Performance Sanitizer for C++},
  author = {Nadav Rotem and Lee Howes and David Goldblatt},
  journal= {arXiv preprint arXiv:2010.09583},
  year   = {2020}
}
R2 v1 2026-06-23T19:27:24.083Z