PlatformProfiler/Roadmap: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Projects =
= Projects =
The following are a list of projects being worked on for the Platform Profiler to make it easier to diagnose and fix complex performance bugs. Note that several of these projects will need very similar overlapping work.
== Profilable Fennec Nightlies ==
== Profilable Fennec Nightlies ==
The goal of this project is being able to profile nightly Fennec build without compiling a local build.
The goal of this project is being able to profile nightly Fennec build without compiling a local build.
Line 24: Line 26:
Owner: :gfritzsche, :benwa, :vlandan
Owner: :gfritzsche, :benwa, :vlandan


Bugs
<onlyinclude>
* Bug 853864 - Expose IPC message information to profiler
<bugzilla>
* Bug 881899 - Deploy a private SymbolicationServer for obfuscated Flash symbols
{
* Front end improvements to display IPC message information
    "blocks": "921301",
    "include_fields": "id, priority, summary, status, assigned_to",
    "order": "bug_id"
}
</bugzilla>
</onlyinclude>
 
== Monitoring I/O ==
== Monitoring I/O ==
The goal of this project is report I/O operation with a proper callstack.
The goal of this project is report I/O operation with a proper callstack.
Line 60: Line 68:
* Code refactoring
* Code refactoring
* Tests
* Tests
== Multi-thread Profiling ==
== <strike>Multi-thread Profiling</strike> ==
The goal of this project is to display more useful profiles for tasks that coordinate work between threads
The goal of this project is to display more useful profiles for tasks that coordinate work between threads


Line 68: Line 76:
* Improvements to thread selection and filtering
* Improvements to thread selection and filtering
* Bug 867757 - Provide a way to insert arbitrary data in a profile
* Bug 867757 - Provide a way to insert arbitrary data in a profile
* Bug 918825 - Add marker relationship for drawing
* Show locking?
* Show locking?
== Power Profiling ==
== Power Profiling ==
Bugs
Bugs
* Bug 769431 - Correlate performance data with Ivy Bridge MSR_PPX_ENERGY_STATUS for power usage profiles
* Bug 769431 - Correlate performance data with Ivy Bridge MSR_PPX_ENERGY_STATUS for power usage profiles
== Good First Bugs ==
* Bug 867728 - Stream profiler JSON directly to a file
* Bug 837273 - Add a control symbol to validate symbolication (Easy)
* Bug 820048 - Add microsecond profiling
* Bug 892058 - Add Profiler GTest unit test
== Experimental/Low Priority ==
== Experimental/Low Priority ==
=== Video Profiling ===
=== Video Profiling ===

Latest revision as of 02:00, 27 September 2013

Projects

The following are a list of projects being worked on for the Platform Profiler to make it easier to diagnose and fix complex performance bugs. Note that several of these projects will need very similar overlapping work.

Profilable Fennec Nightlies

The goal of this project is being able to profile nightly Fennec build without compiling a local build.

Owner: :sewardj

Bugs

  • Breakpad speed improvements
  • Breakpad unwind accuracy

Profilable B2G Nightlies

The goal of this project is being able to profile nightly B2G build without compiling a local build.

Owner: :jld,:sewardj

Bugs

  • Custom ARM Unwinder
  • Use Breakpad on B2G
  • Optimize profiler memory usage

Profiling Plugins

The goal of this project is being able to profile plugins.

Owner: :gfritzsche, :benwa, :vlandan


Full Query
ID Priority Summary Status Assigned to
853358 -- Add plugin profiling support RESOLVED Benoit Girard (:BenWa)
881899 -- Deploy a private SymbolicationServer for obfuscated Flash symbols RESOLVED Chris Turra [:cturra]
920909 -- Plugin profiling syncing fails because float serialization is lossy RESOLVED Benoit Girard (:BenWa)

3 Total; 0 Open (0%); 3 Resolved (100%); 0 Verified (0%);


Monitoring I/O

The goal of this project is report I/O operation with a proper callstack.

Owner: :aklotz

Bugs

  • Bug 867757 - Provide a way to insert arbitrary data in a profile
  • Capture the callstacks for markers
  • Symbolicate marker callstacks
  • Front end improvements to markers and callstacks.

Profiling Painting/Compositing (also Gaming)

The goal of this project is being able to report (1) What is triggering repaints, (2) Frame boundaries, (3) Frame budgets and frames taking above 15ms, (4) Samples related to frame for both the content and compositor thread.

Owner: :BenWa

Bugs

  • Bug 867757 - Provide a way to insert arbitrary data in a profile
  • Instrument the frame transactions
  • Capture callstack of code requesting repaints
  • Add a new widget to show frame budgets
  • Complex time range selection in the front end

Cleopatra

The goal of this project is to improve cleopatra.

Owner: :BenWa, :mstange

Bugs

  • (Various support feature for projects listed here)
  • Better marker UI
  • Fix local storage
  • Code refactoring
  • Tests

Multi-thread Profiling

The goal of this project is to display more useful profiles for tasks that coordinate work between threads

Owner: :BenWa

Bugs

  • Improvements to thread selection and filtering
  • Bug 867757 - Provide a way to insert arbitrary data in a profile
  • Bug 918825 - Add marker relationship for drawing
  • Show locking?

Power Profiling

Bugs

  • Bug 769431 - Correlate performance data with Ivy Bridge MSR_PPX_ENERGY_STATUS for power usage profiles

Good First Bugs

  • Bug 867728 - Stream profiler JSON directly to a file
  • Bug 837273 - Add a control symbol to validate symbolication (Easy)
  • Bug 820048 - Add microsecond profiling
  • Bug 892058 - Add Profiler GTest unit test

Experimental/Low Priority

Video Profiling

The goal of this project is display a video capture along side of the project requested. Similar to eideticker profiles.

Owner: :BenWa

Bugs

  • Either improve automation with screencasting software or build in system to copy composited frames.

Resuming unwinds from PseudoFrames

The goal of this project is to experiment with from a failed unwind from a pseudo frames and/or using previous pseudo frames to copy from a successfull unwind to speed up unwinding.