flutter / flutter/devtools

Rewrite the DevTools flame chart to snap to the selected tree branch

Ouverte
#8,533 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
flame_chart P2 screen: cpu profiler
Langage dominant
Dart
Étoiles
1.7k
Forks
404
Merge moyen
6 j 17 h
PR mergées (30 j)
18

Description

The DevTools flame chart currently supports W-A-S-D keys to zoom and pan. Some flame chart implementations, like Perfetto's CPU flame chart, do not support these gestures. Instead, clicking on a stack frame will "snap" the chart to that specific branch of the tree. From the selected node up, all stack frames are rendered as single-parent-single-child relationships, and then the selected nodes children are rendered as normal. To "zoom out" or navigate up the tree, you can select once of the currently selected node's ancestors.

Screenshot 2024-11-19 at 2 07 01 PM
_perfetto's CPU flame chart_

This would help some of the performance issues we have with the current CPU flame chart (e.g. https://github.com/flutter/devtools/issues/3876) and also simplify the code. This also would make the experience similar to other CPU flame chart tools users are used to using.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par localiser le graphique en flammes CPU actuel de DevTools et sa gestion du zoom et du panoramique avec W-A-S-D. Comparez son comportement avec l’interaction décrite du graphique en flammes CPU de Perfetto ; le travail est terminé lorsqu’en sélectionnant une stack frame, on se recentre sur cette branche, que ses ancêtres sont rendus sous forme de chemins à enfant unique et qu’il est possible de remonter en sélectionnant un ancêtre.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
dart
Domaine
devtools, performance
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.