From 05dccc355144dc717b3cb9ef0074a9ab38a520f4 Mon Sep 17 00:00:00 2001 From: Brandon Low Date: Wed, 18 Jan 2006 20:54:13 +0000 Subject: Profiling support, tools and documentation. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8375 a1c6a512-1295-4272-9138-f99709370657 --- docs/TECH | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'docs/TECH') diff --git a/docs/TECH b/docs/TECH index 4532af3c42..b22a8c4c97 100644 --- a/docs/TECH +++ b/docs/TECH @@ -172,3 +172,29 @@ Charging controlled charging that Rockbox can't affect.) ... + +Profiling + + 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. + + 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. + 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 map files and object (or library) files created in the build. + (ex: ./profile_reader.pl profile.out vorbis.map libTremor.a 0) + + 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. -- cgit v1.2.3