профилирование и RtlUserThreadStart - PullRequest
2 голосов
/ 16 января 2012

Я профилирую свое многопоточное приложение с помощью программного обеспечения "Sleepy". Мои потоки создаются через Windows API с использованием пула потоков.

Во время профилирования он показывает очень большое количество времени, потраченное на следующие функции:
- RtlUserThreadStart (затраченное время: 46% эксклюзивно, 100% включительно)
- ZwWaitForMultipleObjects (23% эксклюзивно, 23% включительно)
- NtWaitForMultipleOvjects (без учета 15,4%, с включением 15,4%)
- NtDelayExecution (7,7% эксклюзивно, 7,7% включительно)
- TpWaitForWork (5,8% эксклюзивно, 5,8% включительно)
- мои фактические расчеты (около 2% включительно).

Однако я не уверен, являются ли эти функции обработки потоков на самом деле результатом моих вычислений или просто каким-то «потерянным временем» (является ли RtlUserThreadStart точной точкой входа в мои функции обратного вызова, и в этом случае многопоточность будет хорошей? ).

Короче говоря, эти данные показывают, что моя многопоточность бесполезна или нет?

Спасибо!

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