Difference between Benchmarking and Profiling
<p>I see the terms <em>software benchmarking</em> and <em>profiling</em> used sometimes interchangeably but as far as my understanding goes there's a subtile difference.</p>

<p>Both are connected by time. But whereas benchmarking is mainly about determining a certain speed score that can be compared with other applications, profiling gives you exact information about where your application spends most of its time (or number of cycles).</p>

<p>For me it was always like: integration testing is the counterpart to benchmarking and unit tesing the counterpart to profiling. But how does micro-benchmarking fit in this? </p>

<p>Someone stated <a href="http://blog.urth.org/2010/03/03/benchmarking-versus-profiling/" rel="noreferrer">here</a>:</p>

<blockquote>
  <p>Profiling and benchmarking are flip sides of the same coin, profiling helps you to narrow down to where optimization would be most useful, benchmarking allows you to easily isolate optimizations and cross-compare them.</p>
</blockquote>

<p>Another one said <a href="https://stackoverflow.com/a/5472572/4721873">here</a> about Profiling:</p>

<blockquote>
  <p>Profiling means different things at different times. Sometimes it means measuring performance. Sometimes it means diagnosing memory leaks. Sometimes it means getting visibility into multi-threading or other low-level activities.</p>
</blockquote>

<p>So, are those techniques conceptually different or is just not that black and white? </p>