We found the problem on the issue that Matti made. It's the float call
itself that has gotten slower. It's been fixed and we improved the PyPy2
performance in the process. Tomorrow's nightly should have the change.

Cheers,

CF

On 17.02.22 20:55, Yannis Foufoulas wrote:
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 <https://bluemail.me>
Στις 16 Φεβ 2022 ,και ώρα 06:24 ,Dan Stromberg <[email protected]
<mailto:[email protected]>> έγραψε:


    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 <
    [email protected] <mailto:[email protected]>> 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
        [email protected] <mailto:[email protected]>
        https://mail.python.org/mailman/listinfo/pypy-dev
        <https://mail.python.org/mailman/listinfo/pypy-dev>


_______________________________________________
pypy-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-dev

_______________________________________________
pypy-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to