Расчет использования ЦП

Наша бизнес-модель требует взимать плату с пользователей в зависимости от количества часов использования процессора.

Первоначально я думал просто использовать StopWatch, а затем использовать прошедшее время в качестве единицы измерения.

Но проблема, которую я вижу при таком подходе, заключается в том, что в дневное время, когда на сервер заходят 5000 пользователей, затраченное время для одного и того же фрагмента кода будет больше, чем в ночное время, когда на сервер заходят только 50 пользователей. .

Другим вариантом является взимание платы с пользователей на основе итераций, выполненных с переданными пользователями данными. С этим подходом также связано несколько проблем.

  • Некоторые функции не требуют повторения данных.
  • Использование ЦП для x + yниже, чем для x + y * z.

Как правильно рассчитать информацию об использовании ЦП в C#/.Net, чтобы она оставалась одинаковой для всех пользователей при выполнении одной и той же операции независимо от нагрузки на сервер?

Возможно, общее количество актуальных инструкций уровня ассемблера? Есть ли способ получить эту информацию в С#?

Какими еще подходами и рекомендациями вы можете поделиться?

Большое спасибо за внимание.

5
задан Moon 10 June 2012 в 15:20
поделиться