eclipse-cdt-cloud / theia-trace-extension

Eclipse Theia trace viewer extension using the Trace Server Protocol (TSP), through the tsp-typescript-client. Also the home for reusable JavaScript libraries: traceviewer-base, traceviewer-react-components
MIT License
49 stars 60 forks source link

Organize Views in folders #157

Open ebugden opened 3 years ago

ebugden commented 3 years ago

⚠️Note: In this issue, the term "view" should have been used instead of "analysis" (see comment). The issue title and description are updated, but all comments below are unchanged.


Organizing views analyses in folders gives users a higher-level overview of the views analyses that are offered.

Important: Only organize views in folders if it is possible to sort views into mutually exclusive categories (that are meaningful for the user). If mutually exclusive categories don't make sense for views, other organization options should be considered (ex. Filtering by tag #158).


Current list of views: image

ebugden commented 3 years ago

List of Trace Compass analyses for organizing (not exhaustive, but hopefully representative):

External analyses

image

ebugden commented 3 years ago

Windows Performance Analyzer (WPA) categories:

ebugden commented 3 years ago

Perfetto trace config, probe categories and contents (subset):

ssmagula commented 3 years ago

Hello all, Just a quick note to say what Erica outlined here makes a lot of sense to me. Grouping analyses (by "type" today and perhaps by "type of problem it solves" tomorrow?) will make analyses easier to discover, retrieve, and remember. This has to do with Miller's theory about short-term working memory ("we can recall 7 plus or minus 2"). Miller may have been a bit optimistic (see: https://www.nytimes.com/2013/09/10/science/seven-isnt-the-magic-number-for-short-term-memory.html) so anything we do to categorize, group, chunk information (while retaining power/optionality) will yield positive results.

I've been preoccupied with the winter storm in Austin week. We lost power, heat, and our house partly flooded. Now we have no water and neither do our neighbors. It's a mess. I hope to be back soon.

--Stefan

On Thu, Feb 18, 2021 at 6:07 PM ebugden notifications@github.com wrote:

Perfetto trace config, probe categories and contents (subset):

  • CPU
    • Coarse CPU usage counter
    • Scheduling details
    • CPU frequency and idle states
    • Syscalls
  • GPU
    • GPU frequency
    • GPU memory
  • Power
    • Battery drain
    • Board voltages & frequencies
  • Memory
    • Native heap profiling
    • Java heap dumps
    • Kernel meminfo
    • High-frequency memory events
    • Low memory killer
    • Per process stats
    • Virtual memory stats

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/theia-ide/theia-trace-extension/issues/157#issuecomment-781717589, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIOFFVTV5TWRP2NAX37BGLS7WTVVANCNFSM4SPZZKOQ .

ebugden commented 3 years ago

@MatthewKhouzam Could you sanity check this rough sort attempt?

Right now we're just trying to determine whether analyses can be sorted into useful and mutually exclusive categories? (Otherwise it may make more sense to use tags #158)

Sort attempt (with very limited knowledge of analyses):

Other categories that could be relevant:

MatthewKhouzam commented 3 years ago

I am thinking... and I don't know if it's correct or not, but would it be more interesting to have several "layouts"

simple: Problem to solve e.g.

Advanced:

Then dev mode can be more reflective of our architecture.

Thoughts?

ebugden commented 3 years ago

Some related questions:

ebugden commented 3 years ago

MatthewKhouzam: would it be more interesting to have several "layouts"?

Yes, but we're starting with something more simple before working up to that. The table below shows organization steps with increasing levels of accessibility. Lego organization TC analysis organization
Sorting pieces by type Grouping analyses by type #157
Labelling piece boxes with recommended usage information Good analysis titles and usage explanations
Providing instruction sheets for specific builds Providing problem-based analysis layouts

Here's my plan:

  1. Make expert's life easier: Because a lot of current users already know how to do trace analysis, my intuition was to start by making the analyses feel like well organized lego—super easy to quickly find what you're looking for. An expert lego builder already knows what piece they need and how to use it, they just need to find it fast.
  2. Build defaults based on expert's layouts: I don't have the expertise to make relevant problem-based layouts in a time efficient way, but once the experts have been "playing with their lego" and building analyses layouts for a while we could ask them for their favourite layouts for different problems (Related: #267). What's great about asking for layouts is that there's no proprietary data involved!

If we try to jump directly to problem-based layouts, we risk them not being representative or useful.

ebugden commented 3 years ago

Current focus: Can analyses be sorted into useful and mutually exclusive categories (i.e. folders #157)? (Otherwise it may make more sense to use tags #158)

mirsky-work commented 3 years ago

I tend towards (not too many) mutually exclusive categories, that will help users who already know what they are looking for, to find it quickly. Something along the lines of:

ebugden commented 3 years ago

mirsky-work: I tend towards (not too many) mutually exclusive categories (CPU, (GPU), Memory, Power, Structural?)

I also think having around 5 categories is a good first step.

I'm going to looking through the Trace Compass User Guide to get a bit more info for a slightly better sort proposal than above, but then I'm going to need someone with more experience to review like @MatthewKhouzam.

ebugden commented 3 years ago

I've been organizing the wrong items! I've been organizing Trace Compass Analyses when I should have been organizing Trace Compass Views.

@MatthewKhouzam Could I get a list of most Trace Compass Views?

Letting the user select Views (ignoring the existence of Analyses) feels like the the right first step, so I'm just going make the Trace Viewer terminology consistent with Trace Compass. Examples:

Trace Viewer "Analyses" TC Analyses and Views
image image

Trace Compass Analyses and Views

My understanding is that the existence of "TC Analyses" and "TC Views" comes from the implementation: The trace data transformation path is: Trace events --> TC Analyses --> TC Views

Are "TC Analyses" an important concept for a Trace Viewer user?

It doesn't seem like it. Contributors/Developers need to know whether they're writing an Analysis or a View, but the user is only interacting with Views, right?

ebugden commented 3 years ago

Listing as many views I can find here to help with creating meaningful view categories.

Category ideas

Categories need to cover all analysis/views and ideally be the same type of thing.

What are the keywords/language that people recognize? What are terms people look for?

Views

Sources: Trace Compass, Trace Viewer, Trace Compass User Guide - Main Features

Data views

What data does each view contain? Why is it useful?

Other data views:

Operation/interaction views

Misc. Questions


image image

ebugden commented 3 years ago

@ssmagula @MatthewKhouzam What do you think about the organization below? I'm unconvinced. Here's a rough clustering of some of the Trace Compass views:

The division is extra confusing because some categories are nouns (physical or logical structures, ex. CPU, Functions) and some are actions (ex. Locking). I considered switching the actions to "Lock" and "Scheduler", but somehow I found those categories more confusing.


I think we should leave Views as a flat ordered list for now because:


Off topic View-related thoughts after overview:

View specific:

ebugden commented 2 years ago

Not currently relevant since the number of views is short (<10)