Thank you, Ralf.
All that sounds pretty promising. I took a look on their web-site - indeed
it does what I whant. However, I am still woundering if there any options to
do this with bjam? Moreover I was successful to compile and run the
extension with variant=profile option and I suspect that there should be
some information generated, but I do not know how to see it. So if someone
here knows how to do this - that should be very valuable knowledge. Anyways
it looks that up to now the oprofile - is my only option.

Best wishes
Alexey

2010/2/27 Ralf W. Grosse-Kunstleve <r...@yahoo.com>

> I usually use oprofile. Typically, I write a small piece of python to call
> the
> extension multiple times so it runs the critical code for about a minute
> (10
> seconds will probably do, too), then the extension code is the only thing
> showing up near the top of the oprofile stats.
> It is important that nothing else is running on the machine when you run
> your extension for profiling, since oprofile is a kernel-level tool and
> sees
> the entire system.
> Last time I looked at the docs (ca. 5 years ago...) you had to be root for
> "opcontrol --start". I'm not sure if that's still a requirement.
> The commands I use are:
>
> opcontrol --reset; opcontrol --start # root
> # run as usual (not root)
> opcontrol --shutdown # root
> opreport -l > report
> opannotate --source > annotated
> grep '^[ 0-9][ 0-9][ 0-9][ 0-9][ 0-9][0-9] ' annotated | sort -n
>
> You may need "yum install oprofile" or similar.
>
> ------------------------------
> *From:* Alexey Akimov <alexey.akimo...@gmail.com>
> *To:* Development of Python/C++ integration <cplusplus-sig@python.org>
> *Sent:* Sat, February 27, 2010 7:52:17 PM
> *Subject:* [C++-sig] profiling python extension
>
> Dear all,
>
> Does anyone know how one may profile a python extention? There is a bunch
> of literature on profiling of pure binaries (programs and even libraries),
> pure python code, etc. However the profiling of a python module from python
> script seems a tricky procedure.
> What I tried is to pass variant=profile to bjam. Everything works fine and
> I get .so library corresponding to my module (placed into /profile
> sub-directory of this particular build). When I execute the python script
> invoking my module's functions (performance of those functions is most
> interesting for me) there is no any output generated (something similar to
> gmon.out). So that is basically my question - how can I retrieve the
> profiling information about my extension? Of course I can compile a normal
> executable using the functions in the module and then use a standard
> approach (and of course gprof), but I hope that there should be more
> straightforward and easy way to do this (hopefully by passing some arguments
> to bjam).
> Thanks in advance.
>
> Alexey
>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig@python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
>
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to