Устранение неполадок синхронизации связи (приложение C ++ для Windows) - PullRequest
0 голосов
/ 10 мая 2011

У меня есть «устаревшее» (решение этой проблемы для нас) приложение, которое обменивается данными со встроенным устройством - оно управляется внешним OEM-приложением, которое перепрограммирует электронные блоки управления (ECU) автомобиля с помощью этого «приложения» -> связывается к автомобильному ЭБУ через USB-порт -> некоторые проходят через устройство -> автомобильный ЭБУ.

Кажется, что есть некоторые проблемы с синхронизацией (вызов / ответ обычно не должен превышать> 100 мс), и мне было интересно, что вы рекомендуете для измерения всего этого. Я думал, что регистратор для такого рода проблем, конечно, помогает, но, как я понял / увидел, здесь также много потоков и, возможно, синхронизации. Потоки, конечно, могут создавать некоторые проблемы. Есть ли способ, которым я могу иметь "общее" представление о синхронизации, связанной с потоками / синхронизацией? Например, если есть некоторые проблемы синхронизации с потоками, есть ли способ, которым профилировщик (который выбирает данные) мог бы сказать мне время, вовлеченное в ожидание / синхронизацию, например? Я использую Visual Studio 2008, но думаю, что мог бы также использовать VS 2010, если бы это помогло.

Вы рекомендуете Visual Studio Profiler (требуется групповая версия?) Для этого или есть что-то еще (возможно, также бесплатное)? Спасибо

-Гита

1 Ответ

0 голосов
/ 13 августа 2011

У этого вопроса было довольно много времени. Решением этой проблемы было: «Завершил регистратор в памяти (который сбрасывает информацию только в конце« профилирования »/ программы)». Оглядываясь назад, можно сказать, что это было достаточно, но в наши дни ориентированный на производительность способ в Windows заключается в использовании Event Tracing для Windows (ETW), поскольку это позволяет отделить поставщика журналов от потребителя информации трассировки событий таким образом, что даже происходит сбой ведения журнала. приложение не будет влиять на ведение журнала (до момента, когда произойдет фактическое падение). Кроме того, у него есть и другие преимущества в производительности, так как он способен обрабатывать тысячи событий, генерируемых приложением-производителем, без видимого снижения производительности.

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