Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend the list of resource usage items, and also enable user-selection for items to show in the bar #3296

Open
andreww-msft opened this issue Jun 24, 2024 · 3 comments
Assignees
Labels
Area-DD Related to Dev Diagnostics🔍 Issue-Feature New feature or request Priority-2

Comments

@andreww-msft
Copy link
Contributor

andreww-msft commented Jun 24, 2024

At present, when the user targets an app, we not only add the app icon + name, but also the CPU usage of that app. We also arbitrarily include the overall system resource usage items for CPU, memory and disk. These were never intended to be fixed items. Rather, the intention was to illustrate the kinds of information we could provide, and that these would be user-configurable. Also at present, we show the per-app CPU usage on the left in the bar, three system usage items on the right in the bar, and three per-app items (including the CPU usage) at the bottom of the expanded mode window. Having multiple locations, duplicated items, and arbitrarily selected items is confusing, and for many users will not be useful. These need to be rationalized.

Proposal

  1. All resource usage items should be user-selectable.
  2. They should be selectable from the complete list that we offer in the main Resource Usage tab.
  3. The user can select 0..N items.
  4. The user can select per-app items, or system-wide items, or both. All items of both kinds go in the Resource reports panel.
  5. Resource items that the user selects to pin to the bar are only pinned to the bar; they are not duplicated anywhere else outside the main Resource reports panel in the bar.
  6. Each selected item must have a tooltip. We will differentiate per-app vs system-wide items in the tooltip. Eg “FooApp CPU%” vs “System CPU%”.
  7. Each item on the Resource Usage tab should include a description that is sufficiently detailed so the user can understand and can distinguish it from other similar items, eg: Name | Value | Description.
  8. The item descriptions must be precise. Right now, we have simplified labels: for example, right now we say “Memory usage”, whereas the per-app value is actually the private working set, and the system-wide value is the committed bytes. Going forward, we must use strictly accurate labels where possible, and strictly accurate descriptions at all times.
  9. For each item value, we will use formatting similar to what TaskManager uses (for example, report memory in MB rather than bytes).
  10. For each item we include, as part of validation, we must compare with TaskManager. Where TaskManager lists the same item, the value reported in PI and TaskManager must be the same (within reasonable tolerances).
  11. We must use the same naming as TaskManager for the same item.
  12. As we expand the list of items, we can consider each potential candidate on its usefulness. For example, instead of simply listing one memory item for the target app, we could list all the individual memory items that are available. Not all of them are necessarily useful, so we’ll be judicious in selecting a suitable subset.
  13. The tooltip for an item on the Resource reports panel can be a shorter summary of the Resource Usage tab description, where necessary – long tooltips for bar items can be problematic, especially when the bar is in collapsed mode.
  14. When the user is not targeting an app, we remove the app’s icon & name from the bar. Similarly, we will also remove any per-app resource items – these only show up when the user is targeting an app.
  15. The list of items in the main Resource Usage tab will be extended to many more resource types and sensor readings.
  16. The list of items in the main Resource Usage tab will be divided into two categories: per-app and system-wide, and each category will be presented as an Expander. Note some items will appear in both categories, eg “Per-app CPU%” and “System CPU%”.
  17. We’ll do the work to notify the user if she accidentally tries to pin multiple instances of the same item – this will not be allowed.
  18. We will continue to provide three items by default, just to illustrate to the user that this is an option: system-wide CPU, memory, disk usage.
  19. As the set of resource/sensor items increases, we will provide some useful structure, rather than a flat list. In early prototypes, we used a LibreHardwareMonitor component which offered a tree of menu-items, so we might need some similar tree layout. We could group items into meaningful categories.
  20. Where the set of resource/sensor items is big enough, we will consider the performance implications, and perform updates on background threads, etc to ensure we don’t degrade the UX, and don’t degrade either PI startup or rendering of the Resource usage page.
  21. (Lower priority): offer a “pause/resume all updates” toggle-switch on the Resource usage page.
  22. (Lower priority): offer a right-click “un-pin” menu on each item that the user has pinned to the bar. They will be able to remove each item by going to the Resource usage page and changing their settings – so this is a nice-to-have.
  23. Consider a maximum number of items.
@andreww-msft andreww-msft added Issue-Feature New feature or request Priority-2 Area-DD Related to Dev Diagnostics🔍 labels Jun 24, 2024
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Triage New issue that the core contributors need to triage label Jun 24, 2024
@andreww-msft andreww-msft removed the Needs-Triage New issue that the core contributors need to triage label Jun 24, 2024
@andreww-msft andreww-msft changed the title Make the resource usage items user-configurable Extend the list of resource usage items, and also enable user-selection for items to show in the bar Jun 26, 2024
@andreww-msft andreww-msft added Issue-Scenario Large scope that links to other issues Priority-1 Priority-2 Issue-Feature New feature or request and removed Issue-Feature New feature or request Priority-2 Priority-1 Issue-Scenario Large scope that links to other issues labels Jul 25, 2024
@andreww-msft andreww-msft added this to the Dev Home v0.18 milestone Jul 26, 2024
@xhan65
Copy link
Contributor

xhan65 commented Jul 26, 2024

Investigating

@andreww-msft
Copy link
Contributor Author

Closed by #3755

@andreww-msft andreww-msft added the Resolution-Fix-Committed Fix is checked in, but may take 3-4 weeks before it's in a release label Sep 6, 2024
@jaholme jaholme reopened this Sep 6, 2024
@jaholme
Copy link
Contributor

jaholme commented Sep 6, 2024

Needed to revert due to problems with Librehardwaremonitor

@xhan65 xhan65 removed the Resolution-Fix-Committed Fix is checked in, but may take 3-4 weeks before it's in a release label Sep 6, 2024
@xhan65 xhan65 modified the milestones: Dev Home v0.18, Dev Home v0.19 Sep 6, 2024
@timkur timkur removed this from the Dev Home v0.19 milestone Sep 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-DD Related to Dev Diagnostics🔍 Issue-Feature New feature or request Priority-2
Projects
None yet
Development

No branches or pull requests

4 participants