For something like this, it would be better to write a function that performs 
the operation on the million+ Points in C++ and expose that function to Python. 
 This would be a better alternative to both using Boost.Python or wrapping it 
by hand.

Kamal

> From: cadc...@narod.ru
> To: cplusplus-sig@python.org
> Date: Mon, 13 Jul 2009 06:19:57 +0400
> Subject: [C++-sig] Boost.Python is slow?
> 
> Hello everyone! I'm currently embedding Python and have a problem. I have a 
> struct (point) which looks like
> 
> struct TPoint
> {
>     int x, y;
> };
> 
> And I want it to be usable from Python. I made it in two ways: the first one 
> was writing all the warpping by myself according to Python/C API, and the 
> second was wrap it with Boost.Python. So it looks like
> 
> class_<TPoint>("TPoint")
>     .def_readwrite("x", &TPoint::x)
>     .def_readwrite("y", &TPoint::y);
> 
> It wraps ok but here is a problem: I create a huge (1000000 items) list of 
> objects of that type:
> 
> def cr_fig(n):
> res = []
> while n>0:
> res.append(TPoint())
> n -= 1
> return res
> 
> And then when I use a simple function which just increments the x member of 
> every object, this function takes about 4 seconds to process the whole list 
> (1000000 items) of Boost-wrapped objects and less than a second to process 
> objects of my own wrapping! How this can be possible? Is Boost.Python much 
> more slower than Python itself?
> 
> Regards, Artyom Chirkov.
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig@python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig

_________________________________________________________________
Attention all humans. We are your photos. Free us.
http://go.microsoft.com/?linkid=9666046
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to