Пайтон в 35 раз медленнее чем Javascript

orleanz
Сообщения: 132
Зарегистрирован: 22.12.2011 21:58

Пайтон в 35 раз медленнее чем Javascript

Сообщение orleanz »

Один и тот же алгоритм - вычисление первых 200 тысяч простых чисел

занимает на одной и той же машине на Пайтоне в 35 больше времени, чем на js в Хроме

адский треш!

Изображение
orleanz
Сообщения: 132
Зарегистрирован: 22.12.2011 21:58

Re: Пайтон в 35 раз быстрее чем Javascript

Сообщение orleanz »

модераторы, поправьте название топика - Пайтон МЕДЛЕННЕЕ в 35 раз чем js
Аватара пользователя
Гость

Re: Пайтон в 35 раз быстрее чем Javascript

Сообщение Гость »

Птицын, ты здесь зря нарисовался.

Ведь здесь в каждом топике разрешены анонимы.

Держись, сейчас тебе напихают полную тачку уев!! :D :D
Припомнят все 10 лет старого форума!
Иринище
Сообщения: 2460
Зарегистрирован: 23.09.2011 19:25
Ник с it-ru.de: верифицирован

Re: Пайтон в 35 раз быстрее чем Javascript

Сообщение Иринище »

orleanz писал(а):модераторы, поправьте название топика - Пайтон МЕДЛЕННЕЕ в 35 раз чем js
Вы можете кликнуть на слово "правка" и сами исправить название.
orleanz
Сообщения: 132
Зарегистрирован: 22.12.2011 21:58

Re: Пайтон в 35 раз быстрее чем Javascript

Сообщение orleanz »

Гость писал(а):Птицын, ты здесь зря нарисовался.

Ведь здесь в каждом топике разрешены анонимы.

Держись, сейчас тебе напихают полную тачку уев!! :D :D
Припомнят все 10 лет старого форума!
dude i don't give a fuck
orleanz
Сообщения: 132
Зарегистрирован: 22.12.2011 21:58

Re: Пайтон в 35 раз медленнее чем Javascript

Сообщение orleanz »

по существу - уже разобрался, что в Пайтоне JIT компайлер не содержится принципиально, но для желающих он есть в системах типа PyPy где скорость выполнения сравнимая с нативным кодом

так что вопроса собственно больше нет

можете удалять топег
Аватара пользователя
Гость

Re: Пайтон в 35 раз медленнее чем Javascript

Сообщение Гость »

orleanz писал(а):по существу - уже разобрался, что в Пайтоне JIT компайлер не содержится принципиально, но для желающих он есть в системах типа PyPy где скорость выполнения сравнимая с нативным кодом

так что вопроса собственно больше нет

можете удалять топег
я так понимаю это у них такой общий подход в питоне, как только появляется что нибудь вычислительно-емкое, то что в интерпретаторе тормозит - подключают C библиотеку которая это считает. благо интерфейс к С нормальный а не такое как в яве например.
Аватара пользователя
solo
Сообщения: 19
Зарегистрирован: 29.09.2011 10:41
Ник с it-ru.de: верифицирован

Re: Пайтон в 35 раз быстрее чем Javascript

Сообщение solo »

orleanz писал(а):модераторы, поправьте название топика - Пайтон МЕДЛЕННЕЕ в 35 раз чем js
Правильное название топика было бы, "Орлеанс написал тормозной код на javascript и python" :)

Вот код на pyhton, который генерирует 200 тыс простых чисел за 0.2 секунды.

Код: Выделить всё

import time
def smallPrimes(n): 
    """Given an integer n, compute a list of the primes < n""" 
    if n <= 2: 
        return [] 
    sieve = range(3, n, 2) 
    top = len(sieve) 
    for si in sieve: 
        if si: 
            bottom = (si*si - 3)//2 
            if bottom >= top: 
                break 
            sieve[bottom::si] = [0] * -((bottom-top)//si) 
    return [2]+filter(None, sieve) 

start = time.time()
primes = smallPrimes(2750160) 
print("Primes found : " + str(len(primes)))
print("Time (s)     : " + str(time.time()-start))
и еще один за 0.125 sec

Код: Выделить всё

import time
def rwh_primes2(n):
    # http://stackoverflow.com/questions/2068372/fastest-way-to-list-all-primes-below-n-in-python/3035188#3035188
    """ Input n>=6, Returns a list of primes, 2 <= p < n """
    correction = (n%6>1)
    n = {0:n,1:n-1,2:n+4,3:n+3,4:n+2,5:n+1}[n%6]
    sieve = [True] * (n/3)
    sieve[0] = False
    for i in xrange(int(n**0.5)/3+1):
      if sieve[i]:
        k=3*i+1|1
        sieve[      ((k*k)/3)      ::2*k]=[False]*((n/6-(k*k)/6-1)/k+1)
        sieve[(k*k+4*k-2*k*(i&1))/3::2*k]=[False]*((n/6-(k*k+4*k-2*k*(i&1))/6-1)/k+1)
    return [2,3] + [3*i+1|1 for i in xrange(1,n/3-correction) if sieve[i]]

start = time.time()
primes = rwh_primes2(2750160) 
print("Primes found : " + str(len(primes)))
print("Time (s)     : " + str(time.time()-start))
Аватара пользователя
Гость

Re: Пайтон в 35 раз быстрее чем Javascript

Сообщение Гость »

solo писал(а):
orleanz писал(а):модераторы, поправьте название топика - Пайтон МЕДЛЕННЕЕ в 35 раз чем js
Правильное название топика было бы, "Орлеанс написал тормозной код на javascript и python" :)

Вот код на pyhton, который генерирует 200 тыс простых чисел за 0.2 секунды.

Код: Выделить всё

import time
def smallPrimes(n): 
    """Given an integer n, compute a list of the primes < n""" 
    if n <= 2: 
        return [] 
    sieve = range(3, n, 2) 
    top = len(sieve) 
    for si in sieve: 
        if si: 
            bottom = (si*si - 3)//2 
            if bottom >= top: 
                break 
            sieve[bottom::si] = [0] * -((bottom-top)//si) 
    return [2]+filter(None, sieve) 

start = time.time()
primes = smallPrimes(2750160) 
print("Primes found : " + str(len(primes)))
print("Time (s)     : " + str(time.time()-start))
и еще один за 0.125 sec

Код: Выделить всё

import time
def rwh_primes2(n):
    # http://stackoverflow.com/questions/2068372/fastest-way-to-list-all-primes-below-n-in-python/3035188#3035188
    """ Input n>=6, Returns a list of primes, 2 <= p < n """
    correction = (n%6>1)
    n = {0:n,1:n-1,2:n+4,3:n+3,4:n+2,5:n+1}[n%6]
    sieve = [True] * (n/3)
    sieve[0] = False
    for i in xrange(int(n**0.5)/3+1):
      if sieve[i]:
        k=3*i+1|1
        sieve[      ((k*k)/3)      ::2*k]=[False]*((n/6-(k*k)/6-1)/k+1)
        sieve[(k*k+4*k-2*k*(i&1))/3::2*k]=[False]*((n/6-(k*k+4*k-2*k*(i&1))/6-1)/k+1)
    return [2,3] + [3*i+1|1 for i in xrange(1,n/3-correction) if sieve[i]]

start = time.time()
primes = rwh_primes2(2750160) 
print("Primes found : " + str(len(primes)))
print("Time (s)     : " + str(time.time()-start))
Гея Орлеанса жостко отымели в извращённой форме.
Ответить