On Thu, May 30, 2013 at 11:29 PM, Nicolas Rougier
<nicolas.roug...@inria.fr> wrote:

>> I'm also concerned about the overhead of
>> ctypes, given that there are already so many required optimizations in
>> the matplotlib freetype wrapper to make it fast enough.  But I'm willing
>> to hold judgement on that until some measurements have been made.
>>
>
> I would never have thought ctypes would be a problem for speed/optimization 
> and I never benchmarked the freetype-py.

Well, I see it this way -- for high performing Python code, you often
need to "vectorize" operations one way or another. i.e. if you need to
do a given operation on a bunch  of numbers, objects, whatever, you
need to be able to pass the collection in to lower-level code, so you
dont have all the overhead of python funciton calls, dynamic typing,
etc, inside your loop.

Many (most) C libraries are not designed this way. So when writing
python wrappers, you need to loop though a sequence in python, and
call the underlying c function for each item. With ctypes, you write
that code inPython, with cython, it's easy to write that code in
cython, which gets compiled down to C -- you can get major performance
benefits from this.

And Cython is almost at easy to write as Python.

How this applied to freetype, I don't know.

>> 2) It's not Numpy-aware.  For example, it loads image buffers into
>> regular Python lists.  This really should use Numpy for speed.

you can do this with ctypes, and would work fine for image buffers, by
many not as well as Cython for say, a large sequence of characters...

-Chris


-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

chris.bar...@noaa.gov

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to