Hi,

I have downloaded the pypy 1.5 binary (with jit) and run tests (only
sympy/core, so that it's fast) on Ubuntu Natty, 64bit:


ondrej@eagle:~/repos/sympy(master)$ bin/test sympy/core/
============================= test process starts ==============================
executable:   /usr/bin/python  (2.7.1-final-0)
ground types: python

sympy/core/tests/test_arit.py[48] ...f..........................................
..                                                                          [OK]
sympy/core/tests/test_assumptions.py[28] ....f.......................       [OK]
sympy/core/tests/test_basic.py[10] ..........                               [OK]
sympy/core/tests/test_cache.py[1] .                                         [OK]
sympy/core/tests/test_complex.py[13] .............                          [OK]
sympy/core/tests/test_containers.py[5] .....                                [OK]
sympy/core/tests/test_count_ops.py[2] ..                                    [OK]
sympy/core/tests/test_diff.py[6] ......                                     [OK]
sympy/core/tests/test_equal.py[5] .....                                     [OK]
sympy/core/tests/test_eval.py[8] .....f..                                   [OK]
sympy/core/tests/test_eval_power.py[12] ............                        [OK]
sympy/core/tests/test_evalf.py[23] .......................                  [OK]
sympy/core/tests/test_expand.py[6] ......                                   [OK]
sympy/core/tests/test_expr.py[60] ..............................................
..............                                                              [OK]
sympy/core/tests/test_exprtools.py[4] ....                                  [OK]
sympy/core/tests/test_facts.py[11] ...........                              [OK]
sympy/core/tests/test_functions.py[23] .....f.................              [OK]
sympy/core/tests/test_logic.py[11] ...........                              [OK]
sympy/core/tests/test_match.py[26] ...f......................               [OK]
sympy/core/tests/test_numbers.py[47] ...........................................
....                                                                        [OK]
sympy/core/tests/test_operations.py[4] ....                                 [OK]
sympy/core/tests/test_priority.py[5] .....                                  [OK]
sympy/core/tests/test_relational.py[7] .......                              [OK]
sympy/core/tests/test_sets.py[18] ..................                        [OK]
sympy/core/tests/test_subs.py[30] ..............................            [OK]
sympy/core/tests/test_symbol.py[9] .........                                [OK]
sympy/core/tests/test_sympify.py[23] .......................                [OK]
sympy/core/tests/test_truediv.py[3] ...                                     [OK]
sympy/core/tests/test_var.py[5] .....                                       [OK]

======= tests finished: 448 passed, 5 expected to fail, in 2.90 seconds ========
ondrej@eagle:~/repos/sympy(master)$
~/Downloads/pypy-c-jit-43780-b590cf6de419-linux64/bin/pypy bin/test
sympy/core/
============================= test process starts ==============================
executable:   
/home/ondrej/Downloads/pypy-c-jit-43780-b590cf6de419-linux64/bin/pypy
 (2.7.1-final-42)
ground types: python

sympy/core/tests/test_arit.py[48] ...f..........................................
..                                                                          [OK]
sympy/core/tests/test_assumptions.py[28] ....f.......................       [OK]
sympy/core/tests/test_basic.py[10] ..........                               [OK]
sympy/core/tests/test_cache.py[1] .                                         [OK]
sympy/core/tests/test_complex.py[13] .............                          [OK]
sympy/core/tests/test_containers.py[5] .....                                [OK]
sympy/core/tests/test_count_ops.py[2] ..                                    [OK]
sympy/core/tests/test_diff.py[6] ......                                     [OK]
sympy/core/tests/test_equal.py[5] .....                                     [OK]
sympy/core/tests/test_eval.py[8] .....f..                                   [OK]
sympy/core/tests/test_eval_power.py[12] ............                        [OK]
sympy/core/tests/test_evalf.py[23] .......................                  [OK]
sympy/core/tests/test_expand.py[6] ......                                   [OK]
sympy/core/tests/test_expr.py[60] ..........F...................................
..............                                                            [FAIL]
sympy/core/tests/test_exprtools.py[4] ....                                  [OK]
sympy/core/tests/test_facts.py[11] ...........                              [OK]
sympy/core/tests/test_functions.py[23] .....f.................              [OK]
sympy/core/tests/test_logic.py[11] ...........                              [OK]
sympy/core/tests/test_match.py[26] ...f......................               [OK]
sympy/core/tests/test_numbers.py[47] ...........................................
....                                                                        [OK]
sympy/core/tests/test_operations.py[4] ....                                 [OK]
sympy/core/tests/test_priority.py[5] .....                                  [OK]
sympy/core/tests/test_relational.py[7] .......                              [OK]
sympy/core/tests/test_sets.py[18] ..................                        [OK]
sympy/core/tests/test_subs.py[30] ..............................            [OK]
sympy/core/tests/test_symbol.py[9] .........                                [OK]
sympy/core/tests/test_sympify.py[23] .......................                [OK]
sympy/core/tests/test_truediv.py[3] ...                                     [OK]
sympy/core/tests/test_var.py[5] .....                                       [OK]

________________________________________________________________________________
_____________ sympy/core/tests/test_expr.py:test_as_leading_term3 ______________
  File "/home/ondrej/repos/sympy/sympy/core/tests/test_expr.py", line
212, in test_as_leading_term3
    assert (2*x+pi*x+x**2).as_leading_term(x) == (2+pi)*x
AssertionError

== tests finished: 447 passed, 1 failed, 5 expected to fail, in 13.87 seconds ==
DO *NOT* COMMIT!




The test failure is probably some minor difference between CPython and
PyPy.. However, as you can see, the test execution is 4x slower in
PyPy, compared to CPython.
Is this the supposed slow down, or is there something specific to sympy?

I have also done this test in bin/isympy, CPython:

>>> from timeit import default_timer as clock
>>> t = clock(); a = expand((1+x+y+z)**20); clock()-t
1.4584941864

PyPy:

>>> from timeit import default_timer as clock
>>> t = clock(); a = expand((1+x+y+z)**20); clock()-t
4.48898005486

so PyPy is roughly 3x slower here.

So 3x or 4x slower, I think that's already very usable. Especially the
sandbox pypy is an awesome idea, for serving web apps. The only
problem is that I use Cython a lot, which I think is incompatible with
PyPy...

Ondrej
_______________________________________________
pypy-dev@codespeak.net
http://codespeak.net/mailman/listinfo/pypy-dev

Reply via email to