[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Python-Dev] Micro-benchmarks for PEP 580

On Tue, Jul 10, 2018 at 10:20 PM Antoine Pitrou <solipsis at pitrou.net> wrote:
> On Tue, 10 Jul 2018 21:59:28 +0900
> INADA Naoki <songofacandy at gmail.com> wrote:
> >
> > Then, the function is called from another C extension like this:
> >
> > PyObject_CallFunction(func, "n", 42);
> >
> > Currently, we create temporary long object for passing argument.
> > If there is protocol for exposeing format used by PyArg_Parse*, we can
> > bypass temporal Python object and call myfunc_impl directly.
> This is another can of worms to open.  If you're worried about the
> added complexity of PEP 580, what you're proposing is one or two orders
> of magnitude more complicated.

This is just an example of possible optimization, to explain why I want
example application first.
I know Cython is important for data scientists.  But I don't know how
it used typically.

If my idea has 50% gain and current PEP 580 has only 5% gain,
why we should accept PEP 580?
But no one know real gain, because there are no realistic application
which bottleneck is calling overhead.

Without example application, I can't consider PEP 580 seriously.
Microbenchemarks doesn't attract me.
And PEP 576 seems much simpler and straightforward way to expose

> > I think optimization like this idea can boost application performance
> > using Cython heavily.
> You can already define the C signature of a function in Cython and
> intra-Cython calls will benefit from it where possible.  Cooperation
> from core Python is not necessary for that.

Why not allow it for extensions written in C, without Cython?

> The main point of PEP 580 is to make Cython functions faster when
> called from pure Python, not from other Cython functions.

Really?  If so, I prefer PEP 576 to PEP 580.  PEP 580 is too complicated.

Anyway, I want more example applications which uses Cython heavily
for further discussion.

INADA Naoki  <songofacandy at gmail.com>