diff options
author | Brandon Low <lostlogic@rockbox.org> | 2006-01-18 20:54:13 +0000 |
---|---|---|
committer | Brandon Low <lostlogic@rockbox.org> | 2006-01-18 20:54:13 +0000 |
commit | 05dccc355144dc717b3cb9ef0074a9ab38a520f4 (patch) | |
tree | 0a36425cf1321817480a82ed05564a2790e2fca9 /docs/TECH | |
parent | 1060e447f83128a78dfaa8d59ba0baa642d15a4d (diff) | |
download | rockbox-05dccc355144dc717b3cb9ef0074a9ab38a520f4.tar.gz rockbox-05dccc355144dc717b3cb9ef0074a9ab38a520f4.zip |
Profiling support, tools and documentation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8375 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'docs/TECH')
-rw-r--r-- | docs/TECH | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -172,3 +172,29 @@ Charging | |||
172 | controlled charging that Rockbox can't affect.) | 172 | controlled charging that Rockbox can't affect.) |
173 | 173 | ||
174 | ... | 174 | ... |
175 | |||
176 | Profiling | ||
177 | |||
178 | Rockbox contains a profiling system which can be used to monitor call count | ||
179 | and time in function for a specific set of functions on a single thread. | ||
180 | |||
181 | To use this functionality: | ||
182 | 1) Configure a developer build with profiling support. | ||
183 | 2) Make sure that the functions of interest will be compiled with the | ||
184 | PROFILE_OPTS added to their CFLAGS | ||
185 | 3) On the same thread as these functions will be run, surround the relevent | ||
186 | running time with calls to profile_thread and profstop. (For codecs, | ||
187 | this can be done in the codec.c file for example) | ||
188 | 4) Compile and run the code on the target, after the section to be profiled | ||
189 | exits (when profstop is called) a profile.out file will be written to | ||
190 | the player's root. | ||
191 | 5) Use the tools/profile_reader/profile_reader.pl script to convert the | ||
192 | profile.out into a human readable format. This script requires the | ||
193 | relevent map files and object (or library) files created in the build. | ||
194 | (ex: ./profile_reader.pl profile.out vorbis.map libTremor.a 0) | ||
195 | |||
196 | There is also a profile_comparator.pl script which can compare two profile | ||
197 | runs as output by the above script to show percent change from optimization | ||
198 | |||
199 | profile_reader.pl requires a recent binutils that can automatically handle | ||
200 | target object files, or objdump in path to be the target-objdump. | ||