Changes between Version 9 and Version 10 of QtWebKitProfilingSetup


Ignore:
Timestamp:
Sep 30, 2009 10:11:36 PM (11 years ago)
Author:
zecke@selfish.org
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • QtWebKitProfilingSetup

    v9 v10  
    2323The [http://www.angstrom-distribution.org/ Linux Angstrom Distribution] was selected as the Operating System. The benefit of Angstrom is that it is working well on the beagleboard, additional software can be easily installed from the repository provided by the distribution and using the Qt Embedded Linux external toolchain one can easily compile Qt and other software for Angstrom.
    2424
    25 [http://oprofile.sf.net OProfile] was choosen for profiling as it is included in the kernel by default and has ARMv7 support. One requirement for it to generate calltraces for userspace application is that they were compiled using the `-fno-omit-frame-pointer` switch. Angstrom is created by using [http://openembedded.org OpenEmbedded] which allows to easily recompile the distribution with different compiler flags. In this case the whole distribution was built with `-fno-omit-frame-pointer`. [http://oprofile.sf.net OProfile] is working by interrupting the execution, then checking which application and instruction was executed and then generating a callstack for the execution. The oprofiled application is reading these samples from the kernel and storing them to disk. The nature of this tool means that it will not exactly tell you how often certain methods were executed.
     25[http://oprofile.sf.net OProfile] was choosen for profiling as it is included in the kernel by default and has ARMv7 support. One requirement for it to generate calltraces for userspace application is that they were compiled using the `-fno-omit-frame-pointer` switch. Angstrom is created by using [http://openembedded.org OpenEmbedded] which allows to easily recompile the distribution with different compiler flags. In this case the whole distribution was built with `-fno-omit-frame-pointer`. [http://oprofile.sf.net OProfile] is working by interrupting the execution, then checking which application and instruction was executed and then generating a callstack for the execution. The oprofiled application is reading these samples from the kernel and storing them to disk. The nature of this tool means that it will not exactly tell you how often certain methods were executed. More information can be found in the [http://oprofile.sourceforge.net/doc/index.html OProfile manual]  and some hints on how to import an archive [http://oprofile.sf.net OProfile] run to the desktop can be seen in the [http://www.pokylinux.org/doc/poky-handbook.html#platdev-oprofile Poky Linux Manual].
    2626
    2727For testing the execution the [http://qt.nokia.com/doc/4.5/qtestlib-tutorial5.html built-in benchmarking] support of [http://qt.nokia.com/doc/4.5/qtestlib-manual.html QtTest] was used. This tool provides different event counters and options to control the iterations of the test. This can and should be used when executing the test once has too many variations.
    2828
    29 For looking into memory consumption the '''libmemusage.so''' library of glibc was selected. This library can be preloaded using `LD_PRELOAD=/lib/libmemusage.so` and it can be instructed to safe a memory trace with `MEMUSAGE_OUTPUT=/my.trace`. The trace can be analyzed using the '''memusagestat''' of glibc or the performance suite.
     29For looking into memory consumption the '''libmemusage.so''' library of glibc was selected. It was selected because it should be provided by every glibc installation. This library can be preloaded using `LD_PRELOAD=/lib/libmemusage.so` and it can be instructed to safe a memory trace with `MEMUSAGE_OUTPUT=/my.trace`. The trace can be analyzed using the '''memusagestat''' of glibc or the performance suite.
    3030
    3131