flutter / flutter/devtools

Memory debugging are missing lots of features from Observatory

Open
#5,761 14 comments 0 reactions 0 assignees View on GitHub
fix it friday observatory migration P2 screen: memory
Dominant language
Dart
Stars
1.7k
Forks
404
Avg merge
6d 17h
Merged PRs (30d)
18

Description

The "Allocation Profile" option on Observatory is, I think, being replaced by "Memory" in devtools.
Right of the bat I am missing details about new and old heap, and internal vs external memory. I seemingly have to download the CSV file to get that info.
Next of I can no longer press any of the classes to get a detailed view (let alone go from there).

I answered something similar in the questionnaire that was given out some time ago (might have been years at this point, I'm not sure), but I'll repeat it here.

When debugging memory issues I often do this:

- Open observatory.
- Go to "Allocation Profile" and find the class. Click it.
- Use one of the "strongly reachable", "all direct instances", "all instances of subclasses" or "all instances of implementors" options.
- Click the resulting list, either going through it by hand (again clicking on the actual instances etc) and/or performing expression evaluations on the list.
- Open two or more instances in a new tab so I can visually compare them by tabbing back-and-forth.
- Use the "Retaining path" and "Inbound references" feature on instances.

Seemingly _none_ of this is possible though devtools. (and if it is I can't find it).

More advanced I've also hacked together scripts that could find interesting instances, I could then print their id and go to observatory for a visual of this instance (and again for instance use the "Retaining path" features etc) by changing the url for another instance (changing the (e.g.) "&objectId=objects%2F6661" part).

Can I please have this functionality back?

/cc @bkonyi @kenzieschmoll

Contributor guide

Open the contributing guide

Research direction

Start in DevTools' Memory view and compare it with Observatory's Allocation Profile, using the issue's list of missing heap details, class navigation, instance queries, expression evaluation, tabs, retaining paths, and inbound references. Check the CSV output and current instance/object navigation first. Done means the requested memory-debugging workflows are available in DevTools rather than requiring Observatory or URL changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart
Domain
devtools, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.