2014-09-20 1 views
5

Мне сказали, что вы можете использовать PyPy для запуска программ Python, что намного быстрее, поскольку оно компилируется с использованием компилятора JIT, а не интерпретируется.Использование PyPy для запуска программы Python?

Следующая программа находит наибольший простой множитель числа 600851475143:

import numpy as np 

nr = 600851475143 
n = 2 

while n <= np.sqrt(nr): 
    if nr%n == 0: 
     nr = nr/n 
    n += 1 
print(nr) 

Что бы процедура запуска этого с помощью PyPy?

Я знаю, что есть документация на их site, но я не понимаю этого и буду признателен за демонстрацию.

+1

Он не скомпилирован в 'C'. Это не имеет никакого отношения к 'C'. Он работает под JIT. – simonzack

+0

Спасибо, обновил мой вопрос! – Jonny

+0

Обратите внимание, что использование 'math.sqrt' дает сразу 10-кратное ускорение под PyPy. – Veedrac

ответ

7

Добавить эту хижину строку в верхней части программы:

#!/usr/bin/env pypy 

Если вы хотите сделать это вручную, просто введите pypy main.py в командной строке.

+0

Спасибо. Таким образом, никаких изменений в самой программе не требуется, вы просто используете другую программу для запуска файла. Вы знаете, как скорость PyPy (JIT-компилятор) сравнивается с компилируемыми языками, такими как C и FORTRAN? – Jonny

+0

У них есть [показатель скорости в реальном времени] (http://speed.pypy.org/), это зависит от кода, но, по приблизительной оценке, я бы сказал, что в 2-10 раз медленнее. – simonzack

+0

Отлично. Кроме того: когда я пытаюсь запустить программу с терминала с помощью «pypy test.py», он дает мне ошибку, но когда я добавляю строку, которую вы предложили в верхней части программы, и запустите «python test.py», Работа. Это нормально? Или проблема с установкой PyPy? – Jonny

 Смежные вопросы

  • Нет связанных вопросов^_^