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