PyPy - реализация интерпретатора Python на подмножестве RPython с Just-In-Time компиляцией(опционально, но по умолчанию используется она).
Т.е. сам PyPy написан на RPython, и он, при создании исполняемого файла, транслирует код RPython в C.
PyPy очень, очень сильно ускоряет математические операции, тем более, если они в циклах.
Вот пример( два скрипта,вычисляющие числа Фибоначчи):
Первый скрипт - рекурсивный метод
from sys import argv def fib(n): if n <= 2: return 1 return fib(n - 1) + fib(n - 2) n = int(argv[1]) print(fib(n))
PyPy - real 0m0.116s
Второй скрипт(вычисление через цикл):
import sys def fibonacci(n): a = 0 b = 1 for i in range(0, n): temp = a a = b b = temp + b return a print(fibonacci(int(sys.argv[1])))
PyPy - real 0m0.131s
Версия PyPy - 5.1.1
Во втором скрипте я взял такое большое число, т.к. PyPy начинает работать в полную силу при большом количестве циклов. - Он может вычислить число Фибоначчи для 500000 чисел ЗА 5.174s
Выводы делайте сами
PyPy совместим со всеми (или может 1-2 библиотеки имеют проблемы) библиотеками из PyPI, которые ПОЛНОСТЬЮ написаны на Python
Так же имеется совместимость с C модулями, но PyPy тут не поможет со скоростью…
Есть сайт, на котором можно смотреть результаты PyPy в бенчмарках(всё измеряется автоматически) - speed.pypy.org
Если ваши скрипты маленьких размеров - использовать PyPy вам не нужно, т.к. у PyPy при запуске идёт разогрев Just-In-Time компилятора, но для ресурсоёмких задач с вычислениями он очень даже подходит!