release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Wiki > Main > SourceProfiling (compare)

Difference: SourceProfiling (r3 vs. r2)

Profiling Rockbox

(from docs/TECH)

Rockbox contains a profiling system which can be used to monitor call count and time in function for a specific set of functions on a single thread. This can be used to optimize frequently-called functions or code blocks.

To use this functionality:

  1. Configure a developer build with profiling support.
  2. Make sure that the functions of interest will be compiled with the PROFILE_OPTS added to their CFLAGS
  3. On the same thread as these functions will be run, surround the relevent running time with calls to profile_thread and profstop. (For codecs, this can be done in the codec.c file for example)
  4. Compile and run the code on the target, after the section to be profiled exits (when profstop is called) a profile.out file will be written to the player's root. The test_codec program is a good way to do this.
  5. Use the tools/profile_reader/profile_reader.pl script to convert the profile.out into a human readable format. This script requires the relevent relevant map files files, the objdump version to use, and object (or elf or library) files created in the build. (ex: ./profile_reader.pl /tools/profile_reader/profile_reader.pl profile.out vorbis.map libTremor.a 0) arm-elf-objdump wma.map wma.elf 1)

There is also a profile_comparator.pl script which can compare two profile runs as output by the above script to show percent change from optimization

profile_reader.pl requires a recent binutils that can automatically handle target object files, or objdump in path to be the target-objdump.

profile_reader.pl currently only works on m68k targets. adapting it to ARM and Coldfire, and may work on other targets targets. is non-trivial, but shouldn't be too difficult

r4 - 04 Oct 2012 - 06:49:40 - AndreeBuschmann

Revision r3 - 28 Jul 2008 - 22:47 - MichaelGiacomelli
Revision r2 - 27 Mar 2006 - 13:27 - BrandonLow
Copyright by the contributing authors.