Advertisement
Dmitrey15

Untitled

Mar 11th, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. PyPy (http://pypy.org) - Python с динамической компиляцией, на многих задачах работающий во много раз быстрее CPython, см бенчмарки на их сайте: http://speed.pypy.org/
  2.  
  3. В PyPy есть некоторые особенности, из-за которых JIT не может прооптимизировать функцию и из-за этого скорость этой функции получается такая же, как и в CPython, например, если есть смена типа для какой-то переменнной:
  4. a = 4; a = 'asdf'
  5. Правда, время от времени (с новыми релизами) все больше кода становится JIT - совместимым.
  6. У них также есть трейсер (типа профайлера), который позволяет видеть, где JIT сработал, а где - нет, и почему (чтобы можно было попробовать переписать код с незначительными исправлениями и сделать его JIT - совместимым), а также сколько времени потрачено на каждой функции, но я с этим тулом еще не работал (работал только с обычными профайлерами в CPython). Есть еще средства для вызова функций CPython в PyPy и наоборот.
  7.  
  8. Главный недостаток PyPy - некоторые приложения, в основном использующие код С или других языков, с ним не совместимы (или имеют ограниченную функциональность), но с каждым очередным релизом ситуация улучшается.
  9.  
  10. я запустил на своем коде, который написал на собеседовании с Игорем Савенко
  11. (считывание номеров и поиск по начальным цифрам)
  12. www.pastebin.com/nj8DHqbE
  13. там CPython потребляет 1.6 сек, PyPy - 0.6 ceк (Notebook Intel Atom 1.6 GHz).
  14.  
  15. Если хотите, могу попробовать сравнить производительность CPython / PyPy на каком-то другом коде, приближенном к вашим реальным задачам с big data.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement