У меня есть приложение, которое использует счетчики производительности для загрузки ядер / потоков и определения максимального значения. Так как есть 16.12.36 и др. c. обычно в наши дни я использовал List и Math.Max, чтобы найти наибольшую нагрузку.
Однако интервал refre sh равен 100 мс, поэтому он должен выполнять вычисления 600 раз в минуту, и я хочу оптимизировать код настолько, насколько это возможно, чтобы иметь возможность go с еще более высокой скоростью рефракции sh.
Какой самый эффективный способ сделать это? Я читал THREAD об этом, где люди тестировали эффективность, и хотя некоторые говорят, что между Math.Max и реализацией / while / if почти нет различий, другие говорят, что когда вы работаете с double или float ( это то, что у меня есть), разница огромна, 0,3465041 SE c для встроенной реализации и 6 SE c для Math.Max.
Итак, что будет лучшим способом сделать вычисления в ваше мнение и как это можно сделать с помощью списка? Заранее спасибо! Вот что я использую в банкомате:
private void maxThreadTimer_Tick(object sender, EventArgs e) //Max Thread Timer
{
float allCores1 = coreLoad1.NextValue();
float allCores2 = coreLoad2.NextValue();
float allCores3 = coreLoad3.NextValue();
float allCores4 = coreLoad4.NextValue();
float allCores5 = coreLoad5.NextValue();
float allCores6 = coreLoad6.NextValue();
float allCores7 = coreLoad7.NextValue();
float allCores8 = coreLoad8.NextValue();
float allCores9 = coreLoad9.NextValue();
float allCores10 = coreLoad10.NextValue();
float allCores11 = coreLoad11.NextValue();
float allCores12 = coreLoad12.NextValue();
float allCores13 = coreLoad13.NextValue();
float allCores14 = coreLoad14.NextValue();
float allCores15 = coreLoad15.NextValue();
float allCores16 = coreLoad16.NextValue();
List<float> valuesList = new List<float> { allCores1, allCores2,
allCores3, allCores4, allCores5, allCores6, allCores7, allCores8,
allCores9, allCores10, allCores11, allCores12, allCores13, allCores14,
allCores15, allCores16 };
float tMax = valuesList.Max();
}