Profilazione
PowerShell Universal fornisce un profiler delle prestazioni per il debug di problemi in cui la piattaforma potrebbe presentare risposte lente. Ciò è utile principalmente durante la creazione di Dashboard.
Abilitare la profilazione
La profilazione aumenterà l'utilizzo della memoria poiché i dati di profilazione vengono archiviati in memoria. È possibile abilitare la profilazione configurando la proprietà Profiling di appsettings.json. Per impostazione predefinita è false. Sarà necessario riavviare PowerShell Universal dopo aver abilitato o disabilitato la profilazione.
"Profiling": trueAccedere ai dati di profilazione
È possibile accedere ai dati di profilazione navigando a /profiler/results-index . Sarà necessario aver effettuato l'accesso come amministratore prima di poter accedere a questo URL.
Verrà visualizzato un elenco di richieste e delle relative tempistiche.

Facendo clic sulla richiesta verrà visualizzata una suddivisione delle tempistiche.

Profilazione di un endpoint API
È possibile profilare un endpoint API utilizzando Measure-PSUBlock. L'API sarà elencata per URL nell'indice dei risultati.
Ad esempio, si supponga un'API chiamata /process.
Il risultato della profilazione di questa API sarebbe elencato per URL.

La visualizzazione del profilo per questa API elencherebbe il blocco che abbiamo misurato.

Profilazione di un'app
È possibile utilizzare il profiler integrato con le App. Per impostazione predefinita, vengono registrate determinate tempistiche di azioni interne. È inoltre possibile utilizzare il cmdlet Measure-PSUBlock per misurare blocchi specifici all'interno della dashboard.
Ad esempio, questa app utilizza Measure-PSUBlock per misurare le prestazioni del cmdlet Start-Sleep. Il risultato è che il blocco impiegherà un secondo per essere eseguito.
Quando si esaminano le richieste all'interno del profiler, si dovranno cercare UDComponent\ElementPost e UDComponent\Element. Queste sono richieste di elementi all'interno delle App.
Di seguito è riportato l'output di esempio dell'app mostrata sopra. Si noti che l'URL include l'ID dell'elemento MyElement. Si noterà inoltre che il blocco WithinDashboard impiega circa 1 secondo.

Non tutte le tempistiche vengono visualizzate per impostazione predefinita. È possibile fare clic su show trivial per espandere tutte le tempistiche.

Profilazione di un processo
È possibile profilare i processi utilizzando Measure-PSUBlock all'interno dello script.
Ad esempio, si supponga di avere uno script che chiama Get-Service.
L'esecuzione di un profilo su questo script elencherà il processo come JobProfiler/{id}. L'id corrisponderà all'ID del processo mostrato nella console di amministrazione.

Il profilo includerà il blocco che è stato misurato.

Ultimo aggiornamento
È stato utile?