Особенности приложения: "Неуправляемая асинхронность" в трассировке профилировщика

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

Что означает этот "неуправляемый асинхронный"?

0 ответов

.Net Framework генерирует события ETW и передает идентификаторы активности между потоками, чтобы асинхронные вызовы можно было отслеживать между потоками. Неуправляемый код (собственный код) и некоторые более ранние стили асинхронного кода пропускают эти события и идентификаторы активности, поэтому профилировщик не может отследить, какой поток выполняет код и какой код выполняется. Это помечено как "неуправляемый асинхронный" в стеке вызовов. Если вы загрузите файл ETW, вы сможете использовать perfview, чтобы получить более полное представление о происходящем.

Другие вопросы по тегам