title: How to measure CPU use of a specific logical thread?
body: <p>(This does not relate to the basic programming questions I usually ask!)</p>
  
  <p>We have an interesting issue. We have a multi threaded non visual, server app (that runs 10-20 worker threads per process), and it uses a ton of CPU. This is by design.</p>
  
  <p>We cannot profile the real world work load of this code on a developer system. The workload is highly (very highly) variegated. To optimize this code, we need to be able for the production bits to keep a log of which worker jobs take how much CPU.</p>
  
  <p>Our current implementation uses the System.Diagnostics.ProcessThread.TotalProcessorTime to measure, but in .NET v4 does not guarantee the affinity of the logical .NET thread to the ProcessThread, so we cannot be sure what, exactly, we are measuring.</p>
  
  <p>What can we do to measure the CPU use of each thread/each function?</p>
  
  <p>We have heard that an alternate lib for threading is one way, any suggestions?</p>