TaskTracer: Difference between revisions
Jump to navigation
Jump to search
| Line 15: | Line 15: | ||
cd B2G | cd B2G | ||
./build.sh gecko | export MOZ_TASK_TRACER=1; ./build.sh gecko | ||
./flash.sh gecko | ./flash.sh gecko | ||
| Line 30: | Line 30: | ||
./tasktracer.sh stop | ./tasktracer.sh stop | ||
The raw log is written into ''task_tracer_data.logcat''. | |||
6. Get memory maps from the real device. | 6. Get memory maps from the real device. | ||
| Line 35: | Line 37: | ||
mkdir mmaps | mkdir mmaps | ||
./tasktracer.sh get_mmaps | ./tasktracer.sh get_mmaps | ||
The memory maps pulled out from the real device are put under mmaps directory automatically. | |||
7. Prepare data for extracting class/task name. | 7. Prepare data for extracting class/task name. | ||
./prepare-data.sh mmaps ''$objdir'' | ./prepare-data.sh mmaps ''$objdir'' | ||
Two intermediate files are generated for later use: ''mem_offset'', ''symbol''. | |||
8. Convert raw log to JSON format. | |||
python task_tracer_converter.py -i task_tracer_data.logcat [-o task_tracer_data.json] [-w] | |||
Default output filename: ''task_tracer_data.json''. | |||
== How to read the profile using Isis == | == How to read the profile using Isis == | ||
Revision as of 06:53, 8 April 2014
Introduction
TaskTracer aims at the correlation between Tasks and Runnables, across threads and processes.
By looking at a task, TaskTracer tells you:
- The “source events” of this task.
- IO events: touch events, key events, wifi daemon signal
- Where it is dispatched from.
How to use Task Tracer
1. Get the source code of Task Tracer.
git clone https://github.com/shellylin/gecko-dev/tree/tt-v4
2. Build and flash to a real device.
cd B2G export MOZ_TASK_TRACER=1; ./build.sh gecko ./flash.sh gecko
3. Get the source code of data retriever and data converter.
git clone https://github.com/ginayeh/task-tracer-converter
4. Start profiling.
cd task-tracer-converter ./tasktracer.sh start
5. Stop profiling.
./tasktracer.sh stop
The raw log is written into task_tracer_data.logcat.
6. Get memory maps from the real device.
mkdir mmaps ./tasktracer.sh get_mmaps
The memory maps pulled out from the real device are put under mmaps directory automatically.
7. Prepare data for extracting class/task name.
./prepare-data.sh mmaps $objdir
Two intermediate files are generated for later use: mem_offset, symbol.
8. Convert raw log to JSON format.
python task_tracer_converter.py -i task_tracer_data.logcat [-o task_tracer_data.json] [-w]
Default output filename: task_tracer_data.json.
How to read the profile using Isis
http://alivedise.github.io/isis/
Reference links
- bug 908995 - [B2G] Task tracer
- bug 916409 - Data retriever for task tracer
- bug 956620 - [B2G] Task tracer converter
- Isis
TODO
- Integrate with built-in profiler.