Le panneau Profileur JavaScript ne sera plus disponible dans Chrome 124. À l'avenir, utilisez le panneau Performances pour profiler les performances du processeur Node.js.
Pourquoi abandonnons-nous le profileur JavaScript ? (Profileur JavaScript)
Dès Chrome 58, l'équipe DevTools prévoyait d'abandonner le Profiler JavaScript à terme. Plusieurs raisons peuvent expliquer cette situation:
- Il n'est plus activement développé. Le profileur JavaScript n'a pas reçu de mises à jour majeures depuis plusieurs années, et l'équipe n'a pas les ressources nécessaires pour continuer à le développer.
- Une expérience de profilage plus simplifiée Le panneau Performances est déjà utilisé pour toutes sortes d'analyses des performances. Étant donné qu'il peut profiler les performances du processeur JavaScript dans Node.js, il est logique de tout regrouper au même endroit pour plus de cohérence et d'efficacité.
- Le panneau "Performances" est mieux adapté. Nous continuons de l'améliorer en ajoutant de nouvelles fonctionnalités et améliorations, ce qui en fait un outil d'analyse des performances plus puissant et plus convivial.
Que devez-vous faire après l'abandon ?
Pour savoir comment profiler les performances du processeur JavaScript, consultez Profiler les performances Node.js.
Voici quelques conseils pour utiliser le panneau Performances:
- Utilisez le graphique en flammes pour identifier les goulots d'étranglement qui affectent les performances.
- Utilisez les onglets De bas en haut et Arborescence des appels pour comprendre les relations entre les fonctions.
Comment gérer l'abandon ?
Nous avons développé un prototype et publié la Request for Comments (RFC) publiquement sur GitHub afin de recueillir les commentaires des développeurs.
De plus, nous contactons activement les experts du développement pour tester le prototype. Nous résolvons ainsi toutes les préoccupations et les problèmes afin de nous assurer que le panneau Performances répond aux principaux besoins de profilage.
Nous allons abandonner progressivement le profileur JavaScript en quatre étapes pour laisser aux développeurs suffisamment de temps pour s'adapter et l'adopter.
Principaux problèmes et comment nous les avons corrigés
Parmi les commentaires que nous avons reçus, les plus urgents concernaient trois problèmes principaux:
- Format de fichier
.cpuprofile
compatible Le profileur JavaScript utilise un autre format de fichier. Le panneau Performances devrait le prendre en charge. - Vitesse de chargement lente La vitesse de chargement du panneau semblait lente, ce qui interférait avec le processus de profilage.
- Sélecteur de VM JavaScript manquant. L'absence d'un sélecteur d'instance de VM JavaScript limitait les fonctionnalités de profilage dans certains scénarios.
Examinons chacun de ces problèmes et voyons comment nous les avons résolus.
Vitesse de chargement lente
Les développeurs nous ont indiqué que le panneau Performances prenait trop de temps à charger de grands fichiers de données et qu'il plantait parfois.
Nous les avons utilisés pour analyser ces outils (appelés "DevTools-on-DevTools"). Nous avons détecté des problèmes et effectué plusieurs optimisations:
- Remplacement de
Set
par des structures de donnéesArray
. - Suppression des structures de données
Map
inutiles. - Les fonctions récursives ont été refactorisées en itératif (boucles for) afin de réduire l'utilisation de la pile de mémoire.
En corrigeant ces goulots d'étranglement, nous avons accéléré le chargement de 80% pour les fichiers volumineux. 🎉
Pour en savoir plus sur ce que nous avons appris, consultez cet article de blog: Un panneau "Performances" 400% plus rapide grâce à la perf-ception.
Sélecteur de VM JavaScript manquant
Le sélecteur de VM JavaScript était absent du prototype initial. Les développeurs l'utilisent pour effectuer des analyses détaillées et se concentrer sur une instance de VM spécifique.
Nous avons ajouté un sélecteur de VM JavaScript au panneau Performances. Il affiche une liste déroulante de toutes les instances de VM JavaScript disponibles. Lorsque vous sélectionnez une instance, le panneau Performances charge le profil de processeur pour cette instance spécifique.
Prise en charge du format de fichier cpuprofile
Auparavant, le panneau Performances n'acceptait que les fichiers de trace, qui sont des fichiers JSON contenant un tableau d'événements de trace.
En revanche, le profileur JavaScript acceptait les profils de processeur, qui sont des fichiers avec l'extension .cpuprofile
contenant un objet JSON. Elles se présentent comme suit:
{
// The list of profile nodes. First item is the root node.
nodes: ProfileNode[];
// Profiling start timestamp in microseconds.
startTime: number;
// Profiling end timestamp in microseconds.
endTime: number;
// Ids of samples at top nodes.
samples?: integer[];
// Time intervals between adjacent samples in microseconds.
// The first delta is relative to the profile startTime.
timeDeltas?: integer[];
}
Le nouveau workflow ne doit pas empêcher les développeurs d'analyser l'cpuprofile
existante. Par conséquent, le panneau Performances est désormais compatible à la fois avec les fichiers de trace et les profils de processeur. Vous pouvez importer le fichier cpuprofile
dans Performance pour qu'il se charge correctement.
En arrière-plan, nous détectons les différences de structure des objets à l'aide d'une expression régulière. Si le contenu du fichier commence par {"nodes":[
, il s'agit d'un profil de processeur. Sinon, il s'agit d'un fichier de trace.
Une fois le type de contenu identifié, nous le traitons en conséquence. Pour un fichier de trace, nous analysons les événements et créons une chronologie. Pour un profil de processeur, nous analysons l'objet JSON et créons un graphique de flammes.
Conclusion
Utilisez le panneau Performance pour simplifier le profilage des sites Web et des performances du processeur dans les applications Node.js et Deno.
Si vous avez des commentaires ou des suggestions, ajoutez un commentaire à ce bug ou contactez-nous via l'une des options suivantes.
Télécharger les canaux de prévisualisation
Vous pouvez utiliser la version Canary, Dev ou Bêta de Chrome comme navigateur de développement par défaut. Ces canaux de prévisualisation vous donnent accès aux dernières fonctionnalités de DevTools, vous permettent de tester les API de plates-formes Web de pointe et vous aident à détecter les problèmes sur votre site avant vos utilisateurs.
Contacter l'équipe des outils pour les développeurs Chrome
Utilisez les options suivantes pour discuter des nouvelles fonctionnalités, des mises à jour ou de tout autre élément lié aux outils pour les développeurs.
- Envoyez-nous vos commentaires et vos demandes de fonctionnalités sur crbug.com.
- Signalez un problème dans les outils de développement à l'aide de l'icône Plus d'options > Aide > Signaler un problème dans les outils de développement dans les outils de développement.
- Envoyez un tweet à @ChromeDevTools.
- Laissez des commentaires sur les vidéos YouTube sur les nouveautés des outils pour les développeurs ou sur les vidéos YouTube sur les conseils concernant les outils pour les développeurs.