[pypy-dev] Differences between pypy2 and 3 and cffi

Yannis Foufoulas johnfouf at gmail.com
Thu Feb 17 14:55:52 EST 2022


Nothing changes,
the original implementation was
int(float(x)) if x else 0

However, I so that the overhead was the same if not using int.

⁣Λήψη του BlueMail για Android ​

Στις 16 Φεβ 2022, 06:24 ,και ώρα 06:24 ,Dan Stromberg <drsalists at gmail.com> έγραψε:
>I doubt this is an expected result for Pypy3.
>
>But what if you use:
>result[i] =  float(x) if x else 0.0
>
>...to make result be of homogeneous type?
>
>On Tue, Feb 15, 2022 at 3:36 AM Ioannis Foufoulas <johnfouf at gmail.com>
>wrote:
>
>> Hi,
>> I have an embedded function:
>>
>> @ffi.def_extern()
>> def toint(input,insize,result):
>>     for i in range(insize):
>>         x = ffi.string(input[i])
>>         result[i] =  float(x) if x else 0
>>       return 1
>>
>> It seems that this runs around 30-40% percent slower in PyPy3 than in
>2.
>>
>> Input is a char** c array and result is a float c array. The
>difference is
>> not in ffi.string
>> If having `result[i] = 1 if x else 0` it runs same in both versions.
>Any
>> ideas?
>>
>> _______________________________________________
>> pypy-dev mailing list
>> pypy-dev at python.org
>> https://mail.python.org/mailman/listinfo/pypy-dev
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/pipermail/pypy-dev/attachments/20220217/b22e6620/attachment.html>


More information about the pypy-dev mailing list