Skip to content

Implement and land the MVP of the profiler CLI #5953

Description

@canova

We have been talking about a new command-line interface for analyzing profile data for some time.
#5663 is already a good prototype of the profiler CLI, and it's already published in the npm registery as an alpha package here: https://www.npmjs.com/package/@firefox-devtools/profiler-cli

We would like to polish #5663 more, and land all the pieces into the profiler repo.

Steps:

  • Prototype the profiler CLI
  • profiler-cli guide
  • profiler-cli profile info --all and profiler-cli profile info --search
  • profiler-cli thread page-load
  • profiler-cli thread network
  • Show mozlogs
  • Add profiler-cli filter
  • Switch to commander from minimist
  • Add Windows support
  • Publish an npm package as an alpha version
  • Polish the codebase
  • Improve marker search and listing
  • Symbolication and different symbol server option
  • Get feedback from our users and update the cli as necessary
  • Land the profiler CLI to the repo
  • Publish the stable release version of the npm package

And in the follow-ups:

  • Continue getting feedback
  • Update the cli as necessary

More concrete follow-ups:

  • Implement regex search for markers and samples (for example, | support)
  • Implement something like --load-into-profiler-cli in samply.
  • Add a summary after pq load.
  • Expose counter data types
  • Publish profiles and get permalinks
  • Expose more profile meta info
  • Auto-suggest next steps
  • Draw ASCII activity graph
  • Named bookmarks
    • profiler-cli zoom push ts-Fo,ts-Fu --name "resize-thrash"
  • Relative handle references
    • profiler-cli marker info m-@1
    • profiler-cli marker info m-@last
    • profiler-cli marker info m-@longest etc.
  • More sample output filtering
    • profiler-cli thread samples --min-self 1%
    • profiler-cli thread samples --max-depth 15
    • profiler-cli thread samples --top-only (etc. for only seeing one of the 3 results)
  • profiler-cli summary and profiler-cli thread summary
  • Range comparison
  • Wait/Idle analysis
  • Frame-level analysis
  • Stack-level inspection
  • Cross-thread context
    • profiler-cli profile info --in-zoom
    • profiler-cli marker related m-158
  • Save session state
  • Color output
  • Add a way to look at the allocation information

┆Issue is synchronized with this Jira Task

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Fields

    Priority

    None yet

    Jira

    None yet

    Severity

    None yet

    Estimate

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions