flutter / devtools

Performance tools for Flutter
https://flutter.dev/docs/development/tools/devtools/
BSD 3-Clause "New" or "Revised" License
1.58k stars 324 forks source link

leak_tracker MVP #6266

Open polina-c opened 1 year ago

polina-c commented 1 year ago

This issue collects user feedback on leak tracking user stories. MVP tracking: https://github.com/flutter/devtools/issues/6909 Bigger issue: https://github.com/flutter/devtools/issues/3951

Design doc (draft): https://docs.google.com/document/d/1hlGY6HnsH5EJhpQDFm-_e-Sr9euQf6jE74TxkqDxhGY/edit?resourcekey=0--7J08lEADd6HpaTGC1B-Pw

polina-c commented 11 months ago

Will appreciate a signal from community to prioritize use cases. Please, add all emoji that apply to your case for leak_tracker, to this comment.

I develop an application and I want to make sure that: 😀 - disposables from Flutter and my other dependencies are not leaking in my code 👀 - disposables defined in my application are not leaking in my code

I develop a package and I want to make sure that: 🎉 - disposables from Flutter and my other dependencies are not leaking in my code 🚀 - disposables defined in my package are not leaking in my code 👍 - my consumers can ensure the dependencies defined in my package are not leaking in their code

Also will appreciate a comment on the issue with details about your case.

navaronbracke commented 11 months ago

I was about to ask what we are planning to do on leak tracking a runApp() call ;)

I do agree that we should

For plugin developers, they should be able to manage leaks through the example app. I.e. make sure it does not leak, so then the plugin is sure to not leak either. -> 1P packages in flutter/packages fall into this category I think.

polina-c commented 11 months ago

I was about to ask what we are planning to do on leak tracking a runApp() call ;)

I do agree that we should

  • have Flutter clean up leaks in the framework
  • be able to leak trace a runApp() call, i.e. an application built with Flutter.
  • I think enforcing dependencies to not leak is a harder problem, since some dependencies might be outdated or not receive many updates.

For plugin developers, they should be able to manage leaks through the example app. I.e. make sure it does not leak, so then the plugin is sure to not leak either. -> 1P packages in flutter/packages fall into this category I think.

Thank you. Do you mean 'dependencies' or 'consumers'? If dependencies, the consumer can file a bug against them asking to make sure the disposables do not leak in the package code. If consumers, package author cannot enforce them, but can enable it to them, by carefully defining disposables, cleaning the leaks up in the package code and strongly recommending to use leak_tracker in the package README.md.

Makes sense?

I updated description to make the item 👍 clearer. We are considering leak tracking for applications. It is just question of priorities. Right now we focus on regression testing, but leak_tracker is designed to be able to track running applications too.

polina-c commented 11 months ago

@mono0926, @BlackLeg15, @rei-codes, @davidmigloz, @Harishwarrior, @felipecastrosales, @Levi-Lesches, @sullenel, @PiN73, @resfandiari, @gustav3d, @CoderBuck, @noga-dev, @Dean-Spotec, @jayjah, @blaugold, @WillianSalceda, @jogboms, @normidar, @iapicca, @JohnnyRainbow81, @philos3, @tgucio

Will appreciate your votes above

polina-c commented 10 months ago

Hey, people, interested in leak_tracker! If you have cases of memory savings, please, do not hesitate to contribute here: https://github.com/dart-lang/leak_tracker/issues/187

@BlackLeg15, @bivens-dev, @blaugold, @CoderBuck, @cmkweber, @davidmigloz, @Dean-Spotec, @droidbg, @felipecastrosales, @gustav3d, @Harishwarrior, @iapicca, @jayjah, @jogboms, @JohnnyRainbow81, @ksokolovskyi, @Levi-Lesches, @mono0926, @navaronbracke, @NobodyForNothing, @noga-dev, @normidar, @p-mazhnik, @philos3, @PiN73, @rei-codes, @resfandiari, @sullenel, @tgucio, @WillianSalceda,

sfshaza2 commented 3 months ago

I don't think that this requires docs on docs.flutter.web. Let me know if I'm wrong.

kenzieschmoll commented 3 months ago

I don't think that this requires docs on docs.flutter.web. Let me know if I'm wrong.

You are correct. Nothing to document on flutter.dev for this. The leak_tracker package is only in use to track leaks for the Flutter framework right now.