Проблемы измерения производительности проекта C ++ в Visual Studio 2010 - PullRequest
13 голосов
/ 11 июня 2011

Я пытаюсь измерить производительность некоторых функций и методов проекта консольного приложения в Visual Studio 2010.

Я настроил метод профилирования на инструментарий.Проблема в том, что монитор производительности не работает.Сообщение, которое я получаю на выходе:

Profiling started.
Instrumenting w:\MyProject\ProfilingTest\Build\Debug\ProfilingTest.exe in place
Info VSP3049: Small functions will be excluded from instrumentation.
Microsoft (R) VSInstr Post-Link Instrumentation 10.0.40219 x64
Copyright (C) Microsoft Corp. All rights reserved.
File to Process:
   w:\MyProject\ProfilingTest\Build\Debug\ProfilingTest.exe --> w:\MyProject\ProfilingTest\Build\Debug\ProfilingTest.exe
Original file backed up to w:\MyProject\ProfilingTest\Build\Debug\ProfilingTest.exe.orig
Successfully instrumented file w:\MyProject\ProfilingTest\Build\Debug\ProfilingTest.exe.
The process cannot access the file 'w:\MyProject\ProfilingTest\Build\Debug\ProfilingTest.exe' because it is being used by another process.
Data written to w:\MyProject\ProfilingTest\ProfilingTest110611(17).vsp.
Profiling finished.
File contains no data buffers
File contains no data buffers
Analysis failed
The process cannot access the file 'w:\MyProject\ProfilingTest\Build\Debug\ProfilingTest.exe' because it is being used by another process.
Profiling complete.

Я предполагаю, что «корень зла»: Процесс не может получить доступ к файлу «...», потому что он используетсядругим процессом.

Кто-нибудь сталкивался с такими проблемами, пытаясь профилировать нативные приложения, разработанные в Visual Studio 2010, и решать их?

Позже добавьте: Если вместо выбора проекта для профилирования я выбираю непосредственно встроенный исполняемый файл, мне удается профилировать, не получая блокировку процесса, я даже получаю анализ файла.Тем не менее приложение мониторинга завершается сбоем в конце профилирования.Я подозреваю, что это связано с IDE, но точно сказать не могу.

Ответы [ 3 ]

10 голосов
/ 03 августа 2011

в мастере производительности выберите исполняемый файл в качестве цели и укажите путь к исполняемому файлу.Это решенная проблема для меня.

0 голосов
/ 14 мая 2013

Еще одним обходным путем, который я нашел, было следующее:

1) Launch performance wizard
2) choose your project
3) un-check the box to automatically start your profiling 
4) Choose "New Performance Session" and choose your project again (top button on Performance explorer window)
5) Select your performance session from "Targets" and choose "Start Profiling"

Интересно, замечали ли это приятные люди в Редмонде?*

0 голосов
/ 12 июня 2011

Используйте Process Explorer * Функция поиска дескриптора (ctrl + F), чтобы выяснить, какой процесс открыт ProfilingTest.exe. Это приведет вас к следующему этапу процесса устранения неполадок.

...