title: Explanation about high-resolution performance counter and its existence related to .NET Stopwatch?
body: <p>Inside the static <code>Stopwatch</code> constructor we can see the following code, that basicly checks whether a high-resolution performance counter exists.</p>
  
  <pre><code>static Stopwatch()
  {
      if (!SafeNativeMethods.QueryPerformanceFrequency(out Frequency))
      {
          IsHighResolution = false;
          Frequency = 0x989680L;
          tickFrequency = 1.0;
      }
      else
      {
          IsHighResolution = true;
          tickFrequency = 10000000.0;
          tickFrequency /= (double) Frequency;
      }
  }
  </code></pre>
  
  <p>On MSDN it says about <code>QueryPerformanceFrequency</code>:</p>
  
  <blockquote>
    <p>Retrieves the frequency of the high-resolution performance counter, if one exists</p>
  </blockquote>
  
  <p>It's pretty unclear, however, when exactly does it exist? I suspect it usually exists on current machines, but when exactly doesn't it?</p>
  
  <p>It's interesting because when it doesn't exist, <code>Stopwatch</code> becomes a mere wrapper around the <code>DateTime.UtcNow</code> property.</p>