[C++-sig] Boost.Python: wrapping classes instead of functions???
David Roy
david.roy.perso at gmail.com
Fri Sep 11 10:17:23 CEST 2009
Thanks for the reply.
Unfortunately I'm sure that it's the C++ code that's being called in both
cases (I put a pdb.set_trace() in the Python code that shouldn't be called
and a TRACE in the C++ code that should be called).
Some more information:
- there are 148 calls to the function AddTangentAndBinormal(), 0.00625 s per
call in the first case and 0.39 s per call in the second case).
- in the case of a class, the instance is not persisted, i.e. the following
python code is called 148 times:
geom_utils = GeomUtils()
geom_utils.AddTangentAndBinormal()
- I'm using a std::map that will be filled with more than 10000 entries:
it's a private member of the class in the first case and a global in the
second case
- I'm allocating about 10000 vector3 of float each call
- I'm interacting with Panda3D game engine in this function
Don't know if some of these additional info is useful...
Thanks
-David
troy d. straszheim wrote:
>
> David Roy wrote:
>>
>> and the profile was back to 54.0 seconds!!!
>> Please could someone help me understand what's the difference and the
>> mechanism underlying that?
>
> Probably that you're not running the code that you think you are. There
> should be no difference between member function and free function in
> this case, unless you're not telling us something. Run python with the
> -v option to be sure that the code you are running comes from where you
> expect it to.
>
> -t
>
>
>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig at python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
>
>
--
View this message in context: http://www.nabble.com/Boost.Python%3A-wrapping-classes-instead-of-functions----tp25380730p25396895.html
Sent from the Python - c++-sig mailing list archive at Nabble.com.
More information about the Cplusplus-sig
mailing list