Understanding the behavior of your system is critical to making informed
decisions about optimization choices. Some tools like profilers, analyzers,
or debuggers are full featured. Other tools can be lighter
weight like interval timers, kernel timers, and print statements. But all
of them serve an important purpose in aiding the optimization process.