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