Моя работа заключается в тестировании производительности на уровне системы с использованием сторонних инструментов, для которых у меня нет источников.Я также тестирую Windows и могу использовать символы отладки, но не исходный код Windows.Я хотел бы количественно описать области хост-ОС, которые охватывают мои тесты.Для этого есть два больших шага: определить, какие DLL и функции я хочу посмотреть, а затем определить, как профилировать вызовы к ним.
Идеи для покрытия:
- Все функциииз kernel.dll, ntdll.dll, user.dll и т.д ... Основные встроенные модули.Это может привести к значительному перерасходу и, вероятно, выявит множество пробелов, связанных только с устаревшей функциональностью.
- Только имена модулей для любых библиотек DLL, используемых целевым приложением.Не так подробно, но также с меньшей вероятностью упустить ключевые функции в целевом приложении.
- Модули, специфичные для приложения, такие как d3d10.dll, для приложений DirectX 10.
- Основные блоки.Я предполагаю, что это будет объем работы над диссертацией.
Идеи профилирования:
- Запустите анализ графа вызовов VTune во всех моих тестах.Этот вид работает, но, похоже, предоставляет ограниченное представление о том, какие встроенные функции фактически вызываются.
- Динамически оснащайте приложение чем-то вроде Pin или DynamoRIO.Возможное con: slow.
- Поймать звонки с помощью WinDbg.Не уверен, что это будет проще или быстрее, чем Pin.
- Статический анализ с использованием инструмента разборки, такого как IDA Pro.
Есть ли опубликованные работы в этом направлении в Windows?Вы когда-нибудь использовали один из этих инструментов для подключения или регистрации настолько, чтобы рекомендовать его?