devtools icon indicating copy to clipboard operation
devtools copied to clipboard

leak_tracker MVP

Open polina-c opened this issue 2 years ago • 9 comments

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 avatar Aug 28 '23 19:08 polina-c

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.

polina-c avatar Oct 11 '23 20:10 polina-c

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.

navaronbracke avatar Oct 12 '23 19:10 navaronbracke

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 avatar Oct 13 '23 16:10 polina-c

@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 avatar Oct 26 '23 19:10 polina-c

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,

polina-c avatar Nov 28 '23 20:11 polina-c

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

sfshaza2 avatar Jun 26 '24 23:06 sfshaza2

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.

kenzieschmoll avatar Jul 02 '24 16:07 kenzieschmoll

Hello, is there anything I need to do specifically to enable the leak tracker tab in the devtools of the latest Flutter version? I am trying to use it but I can't get it to work. Please help.

ritick-plateron avatar Jun 12 '25 20:06 ritick-plateron

Leak tracker is not integrated with DevTools at the moment. See how to use it here: https://github.com/dart-lang/leak_tracker/blob/main/doc/leak_tracking/OVERVIEW.md

polina-c avatar Jun 18 '25 18:06 polina-c

Done: https://pub.dev/packages/leak_tracker

polina-c avatar Sep 10 '25 14:09 polina-c

Done: https://pub.dev/packages/leak_tracker

Does the pub readme needs update? It links to this issue. But, the issue is closed..

Harishwarrior avatar Sep 10 '25 14:09 Harishwarrior

fix: https://github.com/dart-lang/leak_tracker/pull/275

polina-c avatar Sep 10 '25 14:09 polina-c