Вы можете использовать PerformanceCounter (для загрузки системы).
Или лучше:
var p = System.Diagnostics.Process.GetCurrentProcess();
var span = p.TotalProcessorTime;
Вы должны будете связать это с настенным временем, чтобы получить процент. Также см. UserProcessorTime.
Edit:
Если подумать, если вы хотите провести сравнительный анализ, не лучше ли измерять только затраченное время на выполнение фрагмента кода, например, класса System.Diagnostics.Stopwatch?