Sto analizzando un programma C# da Visual Studio 2013. Vado su Analizza -> Prestazioni e diagnostica per avviare la procedura guidata. Mi dà una scelta del metodo di profilazione. Se scelgo l'impostazione predefinita, il campionamento della CPU, quindi la creazione del profilo funziona e posso vedere i risultati. Tuttavia, se scelgo la terza opzione, l'allocazione di memoria NET, poi dopo la mia domanda ha finito di vedere i risultati vuoti e questo errore nella finestra di output di Visual Studio:VS2013: "VSP2340: Le variabili di ambiente non sono state impostate correttamente" anche quando si esegue da IDE
VSP2340: Environment variables were not properly set during profiling run and managed
symbols may not resolve. Please use vsperfclrenv before profiling
Tutta la documentazione che ho visto on-line suggerisce che vsperfclrenv
deve essere utilizzato con il profiler autonomo e non è necessario quando si esegue il profiler direttamente da Visual Studio. Tuttavia, solo per essere sul sicuro ho provato a installare le variabili d'ambiente necessarie da una finestra del prompt dei comandi e quindi eseguire l'IDE direttamente da quella finestra, in modo che raccoglie l'ambiente:
C:
cd "\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools\x64"
vsperfclrenv /samplegclife /tracegclife /globalsamplegclife /globaltracegclife
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe"
Poi sono andato al procedura guidata delle prestazioni all'interno di Visual Studio come prima. Ma il risultato è lo stesso; Vedo ancora il VSP2340 nel tentativo di analizzare i risultati. Che cosa sto facendo di sbagliato?
Ho notato che la procedura guidata ha quattro tipi di profili da scegliere: campionamento della CPU, strumentazione, allocazione della memoria e conflitto di risorse. Ciò non corrisponde esattamente alle opzioni offerte da vsperfclrenv
, che parla solo di campionamento e tracciamento del profilo (con varianti di applicazione e di servizio di ciascuno, il mio programma è un'applicazione e non un servizio, ma ho abilitato tutte le opzioni solo per essere sicuro) .
Potrebbe esserci qualche variabile di ambiente aggiuntiva necessaria per il profilo di allocazione della memoria? O il messaggio di Visual Studio su vsperfclrenv
è fuorviante?
Forse si riavvia una shell?Dovresti almeno uccidere "explorer" dal process manager, chiudere il process manager, aprirlo di nuovo (con ctrl + shift + escape), quindi ricaricherà evnVars e avvierà explorer. Se sembra troppo complesso, riavvia il PC. E prova a eseguire 'vsperfclrenv' come amministratore. E riparare l'installazione di Visual Studio –
In alternativa puoi provare JetBrains, RedGate o Profiler di memoria SciTech (il più avanzato quando si tratta di memoria non gestita) –