C# Клиентский процессор MQTT имеет скачки ровно через 20 минут - как вы решаете эту проблему в Visual Studio? - PullRequest
2 голосов
/ 09 апреля 2020

Я использую пакет M2mqtt Nuget для создания клиента MQTT, который подключается к AWS ядру IoT. Клиент работает отлично, ровно 20 минут. В первые 20 минут процесс последовательно использует 15 МБ памяти и очень мало циклов ЦП (Диспетчер задач показывает 0% - 0,5%). Затем точно на 20-минутном маркере он переходит на 15% - 25% ЦП и просто остается там постоянно, как будто он застрял в мерзком l oop.

Это мой первый C#. NET проект (на самом деле это мой первый проект по разработке рабочего стола), и я не уверен, как определить проблему. Я нашел инструменты отладки в Visual Studio 2019 и сумел записать это, но я не могу в этом разобраться. Моя C# программа в основном такова: https://github.com/aws-samples/iot-dotnet-publisher-consumer/blob/master/Dotnetsamples/Iotconsumer/Iotconsumer/Program.cs

Означает ли приведенный ниже снимок отладки в явном виде, что 93% от общего времени часов в течение периода профилирования производительности использовалось ReceiveThread(), конкретно строка 1362? Если это так - почему такая вещь должна начинаться ровно через 20 минут безупречной в противном случае деятельности (где полный цикл выполнения составляет 15 секунд)?

Указывает ли это поведение на проблему с тайм-аутом или поддержанием живого состояния?

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...