Performance Profile.json de Microsoft Teams : comprendre, analyser et gérer ce journal de performances

Si vous explorez le dossier C:\Users\<Utilisateur>\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\PerfLogs, vous verrez probablement un fichier nommé Performance Profile.json. Cet article détaille son rôle, son contenu, les situations où il devient utile et la meilleure façon de le gérer de façon sûre et méthodique.

Sommaire

Origine du fichier : pourquoi existe‑t‑il ?

Microsoft Teams repose sur un moteur Chromium embarqué (WebView2) ; à la manière d’un navigateur moderne, il recueille des métriques en temps réel pour :

  • mesurer la consommation CPU, mémoire et GPU ;
  • suivre les événements réseau (latence, perte de paquets, taille des requêtes) ;
  • chronométrer le rendu du DOM, l’exécution JavaScript, le temps de chargement des modules internes (moteur d’appel, interface, extensions, etc.).

Toutes ces données sont sérialisées au format JSON dans des traces baptisées « PerfLogs ». Performance Profile.json est l’un de ces enregistrements ; il se déclenche :

  1. lors de l’ouverture de Teams ;
  2. après la connexion à un tenant ou un changement de compte ;
  3. sur demande explicite (quand un développeur ou un agent support active l’option « Collect developer logs »).

Vue détaillée de la structure du fichier

{
  "traceEvents": [
    {
      "pid": 9236,
      "tid": 34,
      "ph": "X",
      "ts": 143890822,
      "dur": 4123,
      "cat": "devtools.timeline",
      "name": "Layout",
      "args": { "beginData": { "frame": "0xCAFE" } }
    },
    ...
  ],
  "metadata": {
    "process_name": "Teams.exe",
    "app_version": "24150.1020.555.12345",
    "recording_start": "2025‑08‑20T14:25:36.478Z"
  }
}

traceEvents contient des centaines de blocs de ce type ; chaque bloc suit la TEF utilisée par Chrome DevTools. Les propriétés clés à connaître :

CléSignificationInterprétation courante
phPhase (B, E, X…)X = événement complet chronométré ; B/E = début/fin d’un bloc
tsTimestamp (μs)Point de départ relatif à recording_start
durDurée (μs)Permet d’identifier les lents goulots d’étranglement
catCatégoriedevtools.timeline, blink.user_timing, v8, etc.
nameNom de l’événementLayout, ResourceSendRequest, UpdateLayerTree

Chargé dans Chrome DevTools (onglet Performance) ou Edge DevTools (More tools → Performance Recorder), le fichier génère une flamme chronologique (flamechart) et une « waterfall » illustrant l’empilement des tâches CPU/GPU, idéal pour :

  • diagnostiquer les freezes audio/vidéo pendant les réunions ;
  • repérer une extension personnalisée trop lourde ;
  • optimiser un add‑in Teams développé en interne.

Conséquences sur la confidentialité et la sécurité

Contrairement à d’autres journaux applicatifs, Performance Profile.json n’enregistre ni messages utilisateurs, ni contenu vocal, ni fichiers joints. Les données collectées sont strictement techniques. On y trouve :

  • identifiant de processus (pid), version de l’application et build ;
  • fréquence et durée d’API internes ;
  • métriques de rendu (FPS, nombre d’éléments DOM).

Aucun PUA (Potentially Unwanted Application) ou PII (Personal Identifiable Information) n’y figure. Les journaux restent sur le disque local ; rien n’est téléversé vers Microsoft sans action volontaire de l’utilisateur ou d’un administrateur.

Quand faut‑il se préoccuper du fichier ?

ScénarioAction recommandéeRaison
Teams fonctionne sans latence ni crashLaisser le fichier en placeIl se régénère et reste de petite taille (souvent < 5 Mo)
Plusieurs fichiers > 1 Go cumuléNettoyer le dossierLes builds Insider génèrent parfois des logs verbeux
Incident persistant (appels qui se coupent)Archiver le fichier, l’envoyer au supportÉvite de reproduire le problème “à chaud”
Poste en VDI avec espace disque limitéPlanifier une tâche de purgeGarantit la conformité aux quotas

Étapes pas à pas pour nettoyer ou réinitialiser les PerfLogs

  1. Fermer Teams (clic droit sur l’icône → Quitter). Le simple fait de masquer la fenêtre ne suffit pas ; assurez‑vous que Teams.exe n’apparaît plus dans le Gestionnaire des tâches.
  2. Ouvrir l’Explorateur Windows et naviguer vers %LOCALAPPDATA%\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\PerfLogs.
  3. Copier le dossier sur un réseau ou un lecteur externe si vous devez garder une trace (audit interne ou ticket ouvert).
  4. Supprimer les fichiers .json, .catapult_trace et éventuels .heapsnapshot.
  5. Redémarrer Teams : de nouveaux profils seront créés à la demande.

Automatiser la purge via PowerShell

## PurgePerfLogs.ps1
$path = \"$env:LOCALAPPDATA\\Packages\\MSTeams_8wekyb3d8bbwe\\LocalCache\\Microsoft\\MSTeams\\PerfLogs\"
Get-ChildItem -Path $path -Include *.json,*.trace,*.heapsnapshot -Recurse `
  | Remove-Item -Force -ErrorAction SilentlyContinue

Déployez ce script via Intune, GPO ou votre outil préféré pour exécuter un nettoyage hebdomadaire.

Lecture avancée : corréler plusieurs journaux

Lors d’un dépannage complet, Performance Profile.json n’est qu’une pièce du puzzle. Associez‑le :

  • au renderer‑diagnostics‑YYYYMMDD‑hhmmss.txt généré dans le même dossier – il retrace la pile d’appels V8 ;
  • au skylib‑*.log (composant d’appel voix/vidéo) logé dans \%APPDATA%\Microsoft\Teams\media-stack ;
  • aux journaux Windows Event ID 1000 et 1002 si Teams se ferme brutalement.

Aligner les horodatages des différentes sources (UTC ISO 8601) fait apparaître les zones de chevauchement qui pointent vers l’origine d’un freeze ou d’une fuite mémoire.

Bonnes pratiques pour limiter la taille des journaux

  1. Mettre Teams à jour régulièrement ; chaque version stabilise et affine la télémétrie.
  2. Éviter d’ouvrir constamment les DevTools (Ctrl + Shift + I) en production ; cela active un mode trace plus bavard.
  3. Utiliser des stratégies M365 (OfficeCloudPolicyService) pour définir l’option DisableFeedbackLogging à true sur les stations critiques.
  4. Déplacer le cache sur un disque secondaire ou un partage réseau si vous travaillez sur des terminaux à espace restreint.
  5. Surveiller l’espace disque via Windows Performance Monitor ou un agent RMM ; définissez une alerte quand l’usage dépasse 85 %.

FAQ express

  • Q : Puis‑je bloquer l’écriture de PerfLogs via GPEDIT ?
    R : Non. Empêcher l’écriture compromettrait la stabilité ; Teams recréerait la structure ailleurs, voire planterait au démarrage.
  • Q : Les données partent‑elles vers le cloud ?
    R : Non, sauf si l’utilisateur clique sur “Envoyer un diagnostic” ou si un script d’administration téléverse manuellement le fichier.
  • Q : Pourquoi plusieurs versions du même fichier existent‑elles ?
    R : Chaque session lance un profil distinct ; Teams concatène les traces si vous restez connecté > 12 heures.
  • Q : Puis‑je compresser les logs ?
    R : Oui, .json se compresse à plus de 80 % avec ZIP ou 7‑Zip, idéal avant d’envoyer à un tiers.

En résumé

Performance Profile.json est un enregistrement de télémétrie interne déployé par Microsoft Teams pour quantifier les performances du client. Il n’implique aucun risque de sécurité ou de confidentialité et peut être ignoré dans la grande majorité des cas. Conservez‑le en cas de dépannage avancé ; supprimez‑le uniquement pour récupérer de l’espace ou repartir sur un cache propre. Pour les scénarios plus poussés (lenteurs régulières, VDI ou flotte d’entreprise), automatisez la purge et corrélez ce fichier avec les autres logs Teams afin d’obtenir une vue complète de la santé de l’application.

Sommaire