Почему CPython работает быстрее, чем PyPy в двух тестах "slowspitfire" и "waf"? - PullRequest
8 голосов
/ 30 апреля 2011

Судя по тестам , опубликованным в PyPy Speed ​​Center, кажется, что PyPy работает быстрее, чем CPython для всех, кроме двух из представленных тестов.

CPython быстрее, чем PyPy, в двух тестах "slowspitfire" и "waf". Это почему? Какие операции тестируют эти два теста? Что делает CPython быстрее для этих операций? Можно ли ожидать, что PyPy догонит и победит CPython и в этих двух тестах?

1 Ответ

8 голосов
/ 07 мая 2011

Как сказал Тобу, в списке рассылки есть сообщение , в котором дается описание объяснения для slowspitfire: длинные списки с объектами GC в них, среди других факторов.

В тесте waf меньшео явной разнице в производительности, и я предполагаю, что ответ будет более сложным: некоторые факторы PyPy работают лучше, некоторые факторы CPython работают лучше, а общий CPython выходит немного вперед.

В общем, естьЕсть несколько причин, по которым JIT-оптимизированная реализация будет работать медленнее:

  • общие издержки при JIT'е и проверка того, стоит ли JIT
  • компромисс ЦП: использование слишком большого объема памяти длясэкономьте слишком мало времени процессора, или используйте больше страниц подкачки
  • JIT'ы слишком агрессивно, или JIT'ят неправильный код в неправильное время
...