SPS Profiler backend news, 8 July 2013

There’s been quite some progress since the last report, focussed on Firefox for Android.

  • Anton Kovalyov landed changes to the GUI that show the event timelines for multiple threads in a synchronised way.  The multithreaded aspects of the profiler are stabilising nicely.
  • Multi-thread profiling support is ready.  Select ‘Multi-Thread’ when profiling to watch any registered thread.  For now a local build is recommended to tweak which threads you want to profile.
  • Android Java profiling support is ready.  Set ‘profiler.java’ to true on the host desktop machine before connecting to your phone. A new timeline will appear that will represent main java thread execution.
  • Native unwind for Android nightlies is now available.  Select ‘breakpad’ in the GUI on the host desktop machine when connecting to your phone.  With this, full symbolicated profiles are available.
  • Native unwind on Android uses the ARM-specific EXIDX unwind format.  Addition of it to the nightly .apk increases size by about 2.5MB (10% ish), which is not a bad result for near-complete unwindability of libxul and the other libraries.
  • There was some additional work to improve the EXIDX unwind performance and stability to usable levels (883126, 882903).  Sampling beyond 200Hz is viable on a dual-core Cortex A9.  Investigations are in progress to improve unwind speed and reduce memory use, to levels that would make it useful for Firefox OS.