Profilage
Profileur de performances pour PowerShell Universal.
Mis à jour
Ce contenu vous a-t-il été utile ?
Profileur de performances pour PowerShell Universal.
Le profilage fonctionne uniquement pour l'environnement intégré.
PowerShell Universal fournit un profileur de performances pour déboguer les problèmes où la plateforme peut présenter des réponses lentes. Cela est principalement utile lors de la création de tableaux de bord.
Le profilage augmente l'utilisation de la mémoire, car les données de profilage sont stockées en mémoire. Vous pouvez activer le profilage en configurant la propriété Profiling dans le fichier appsettings.json. Elle est définie à false par défaut. Vous devrez redémarrer PowerShell Universal après avoir activé ou désactivé le profilage.
"Profiling": trueVous pouvez accéder aux données de profilage en naviguant vers /profiler/results-index. Vous devrez être connecté en tant qu'administrateur avant de pouvoir accéder à cette URL.
Vous verrez une liste des requêtes et leurs temps d'exécution.

Cliquer sur la requête affiche une décomposition des temps d'exécution.

Vous pouvez profiler un point de terminaison API en utilisant Measure-PSUBlock. L'API sera répertoriée par URL dans l'index des résultats.
Par exemple, supposons une API appelée /process.
Le résultat du profilage de cette API sera répertorié par URL.

L'affichage du profil de cette API listera le bloc que nous avons mesuré.

Measure-UDBlock est un alias de Measure-PSUBlock
Vous pouvez utiliser le profileur intégré avec les applications. Par défaut, certains temps d'exécution d'actions internes sont enregistrés. Vous pouvez également utiliser la cmdlet Measure-PSUBlock pour mesurer des blocs spécifiques au sein de votre tableau de bord.
Par exemple, cette application utilise Measure-PSUBlock pour mesurer les performances de la cmdlet Start-Sleep. Le résultat est que le bloc prendra une seconde à s'exécuter.
Lors de l'examen des requêtes dans le profileur, vous devrez rechercher UDComponent\ElementPost et UDComponent\Element. Ce sont des requêtes pour les éléments au sein des applications.
Ci-dessous se trouve l'exemple de sortie de l'application présentée ci-dessus. Notez que l'URL inclut l'ID de l'élément MyElement. Vous remarquerez également que le bloc WithinDashboard prend environ 1 seconde.

Tous les temps d'exécution ne seront pas affichés par défaut. Vous pouvez cliquer sur show trivial pour développer tous les temps d'exécution.

Vous pouvez profiler des tâches en utilisant Measure-PSUBlock dans votre script.
Par exemple, supposons que nous ayons un script qui appelle Get-Service.
L'exécution d'un profilage sur ce script répertoriera la tâche sous la forme JobProfiler/{id}. L'identifiant correspondra à l'ID de tâche affiché dans la console d'administration.

Le profil inclura le bloc qui a été mesuré.

Mis à jour
Ce contenu vous a-t-il été utile ?
Ce contenu vous a-t-il été utile ?
New-PSUEndpoint -Url "/process" -Endpoint {
Measure-PSUBlock -Name 'Api' -ScriptBlock {
Get-Process | Select-Object name
}
} -Authentication -Timeout 0 New-UDApp -Title 'App' -Content {
New-UDDynamic -Id 'MyElement' -Content {
Measure-PSUBlock -Name 'WithinDashboard' -ScriptBlock {
Start-Sleep 1
}
}
}Measure-PSUBlock -ScriptBlock {
Get-Service
} -Name 'Get-Service'