flutter / flutter/devtools

Migrate to requesting Perfetto timelines containing interned strings from the VM Service

Aperta
#9,075 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
devtools app performance P2 screen: performance
Lingua principale
Dart
Stelle
1.7k
Fork
404
Merge medio
6g 17h
PR unite (30g)
18

Descrizione

@mraleph has made it possible for the VM Service to return Perfetto-format timeline protos with interned strings, which can be much smaller than protos without interned strings. A measurement that he recorded showed that a timeline containing 60k slices went from 15MB to 5MB once interned strings were used. The Perfetto trace viewer knows how to decode interned strings, but since DevTools reads the data in timeline protos itself, it will need to be migrated before it can take advantage of the size reduction.

To migrate, DevTools needs to upgrade to `package:vm_service_protos 2.0.0`, and then implement deinterning as done in https://github.com/dart-lang/sdk/blob/cfeda654176d7c2cf006eeef269a458cdf977f32/pkg/vm_service/test/get_perfetto_vm_timeline_rpc_test.dart#L42. To test the migration, the VM flag `--intern-strings-when-writing-perfetto-timeline` makes it so that `getPerfettoVMTimeline` VM Service RPCs return protos with interned strings. Once the migration is complete, `--intern-strings-when-writing-perfetto-timeline` can become the VM's default behaviour.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.