Как я могу правильно измерить время, необходимое для операций и инструкций, в многопоточном приложении C#, используя NLoC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу правильно измерить время, необходимое для операций и инструкций, в многопоточном приложении C#, используя NLo

Сообщение Anonymous »

У меня есть опыт серверного программирования UNIX, где анализ скорости чрезвычайно прост: просто добавляйте журналы и проверяйте различия между последующими записями.
Однако такой способ работы кажется мне подходящим быть фиктивным в моем текущем приложении: многопоточном приложении C#, основанном на NLog (последний предназначен для целей ведения журнала).
Источник, который я тестирую, следующий:< /p>

Код: Выделить всё

foreach (var missionpart in mission.missionParts)
{
_logger.Debug($"GetmissionsTelegram : currently dealing with missionPart with Id=[{missionpart.Id}]");
if (missionpart.ProductId != null)
{
if (products.Where(o => o.Id == missionpart.ProductId).FirstOrDefault() == null)
{
add_mission = false;
}
}
_logger.Debug($"GetmissionsTelegram : missionPart with Id=[{missionpart.Id}] is dealt with.");
}

_logger.Debug($"GetmissionsTelegram : will be added=[{addmission}]");
Из этого фрагмента кода вы можете легко увидеть, что за строкой, содержащей «разрешено», следует сразу же следовать либо «в настоящее время имеет дело», либо «будет добавлено». " линия. Это не так, как видно из следующих выдержек из файла журнала:

Код: Выделить всё

...
2024-10-17 16:58:13.2446 | GetJobsTelegram : jobPart with Id=[37370] is dealt with.
2024-10-17 16:58:24.1662 | GetJobsTelegram : currently dealing with jobPart with Id=[37371]
...
2024-10-17 17:02:31.9896 | GetJobsTelegram : jobPart with Id=[37320] is dealt with.
2024-10-17 17:02:44.9066 | GetJobsTelegram : currently dealing with jobPart with Id=[37321]
...
2024-10-17 17:04:44.1077 | GetJobsTelegram : jobPart with Id=[37305] is dealt with.
2024-10-17 17:04:55.9323 | GetJobsTelegram : currently dealing with jobPart with Id=[37306]
Как видите, временные метки достигают девяти секунд и даже больше!
Я могу подтвердить, что мое приложение действительно занимает много времени. сделать все, поэтому в случае, если NLog выполняет некоторую буферизацию (что вроде бы нормально для технологии Windows), это лишь смещает проблему в бесполезность журналов, но проблема остается.
...или, может быть, есть способ сразу перейти к источнику проблемы: есть ли способ сказать многопоточному приложению C#:

Вы не продолжаете свои другие обсуждения, пока эта задача не будет завершена.

Есть ли у кого-нибудь информация о том, как мне помочь?Вы не продолжаете работу в других темах, пока не завершите эту задачу.

Есть ли у кого-нибудь информация о том, как мне помочь? п>

Подробнее здесь: https://stackoverflow.com/questions/791 ... uctions-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»