Nick Craig-Wood wrote:
Rolf Wester <rolf.wes...@ilt.fraunhofer.de> wrote:
Hello,
thank you all very much for your replies.
I tried to simplify things and make the two versions as comparable as
possible. I put the C++ part of the program into a shared object
libff.so. For the exe the main function is linked against this shared
object. For the python stuff I made an interface consiting of only one
function call_solver with the same code that has the main function used
for the exe. Then I created a wrapper for this interface using swig and
linked interface.o, ff_warp.o and libff.so into _ff.so. The Python code
just imports _ff and calls call_solver wich creates an object of the
class Solver and calls its member solve (the main function of the exe
does the same).
I included some code for timing into the C++-code.
#include <time.h>
//beginning of solve
clock_t t0 = clock();
...
clock_t t1 = clock();
//end of solve
cout << "time used = " << (t1-t0)/CLOCKS_PER_SEC << endl;
I'm using gcc4.5 (latest snapshot) and Python2.6 under Suse 10.3. The
sources are compiled using the flags -fPIC -O3.
Timing:
1) time python ff.py
time used = 3.74
real 0m3.234s
user 0m3.712s
sys 0m0.192s
Those times look odd because the user time is > than the real time.
User time is number of CPU seconds used. Real time is wallclock time.
That must mean
a) your program is threading
b) there is something up with timing on your computer
Looks odd but exactly what it means I don't know!
2) time ff
time used = 2.19
real 0m3.170s
user 0m2.088s
sys 0m0.168s
Perhaps multithreading on dual cores?
--
http://mail.python.org/mailman/listinfo/python-list