LINUX.ORG.RU

Python vs Lisp. Расстановка точек


0

1

питон:

den@ira-desktop:~/work/test$ time python -O test.py 
('answer: ', 39)

real	0m33.035s
user	0m32.890s
sys	0m0.084s
den@ira-desktop:~/work/test$

clisp:

den@ira-desktop:~/work/test$ time clisp test.lsp
39

real	2m44.491s
user	2m42.970s
sys	0m1.464s
den@ira-desktop:~/work/test$

def test():
    r = 0
    for i in range(0, 10000):
        for j in range(0, 10000):
            r = (r + (i * j) % 100) % 47
    return r
r = test()
print("answer: ", r)
(defun test ()
    (setq r 0)
    (dotimes (i 10000 r)
        (dotimes (j 10000 r)
            (setq r (mod (+ r (mod (* i j) 100)) 47))
        )
    )
)

(write (test))

а теперь докажите, что лисп не тормознутое УГ

Ответ на: комментарий от baverman

Итак. Я бросаю вызов всем программистам этого треда неравнодушным к длине своего лиспа. Кто заставит свой компилятор сгенерить код лучше ситоньего?

конкретно этого - вряд ли. А вообще говоря, цитон генерит отвратный код, почти всегда хуже лиспа.

(цитон без деклараций)

time python -c "import fast"
('answer: ', 39)

real	0m36.573s
user	0m8.704s
sys	0m0.135s

(sbcl без деклараций и оптимизаций)

Evaluation took:
  4.696 seconds of real time
  1.103832 seconds of total run time (1.090834 user, 0.012998 system)
  23.51% CPU
  9,334,482,434 processor cycles
  0 bytes consed
  
39

anonymous
()
Ответ на: комментарий от baverman

> Этот код был просто ответом на вусмерть заоптимизированный лисповский. Так скажем, приложил линейку напоследок.

учитывая, что при этом SBCL оптимизирует код сам, без всяких Сей, в отличие от пистона, то да, сравнение ахренеть как адекватное...

korvin_ ★★★★★
()
Ответ на: комментарий от baverman

на моем вышло так:

den@ira-desktop:~/work/test$ time python -c "import fast"
('answer: ', 39)

real	0m0.667s
user	0m0.648s
sys	0m0.016s

больше pyrex юзать не буду

antony986
() автор топика
Ответ на: комментарий от korvin_

учитывая что все в итоге перетекло в сравнение компилятора и интерпретатора, то я думаю cython ой как актуален

antony986
() автор топика
Ответ на: комментарий от antony986

(Позвольте реанимировать тред=)
То есть смысл всех обсуждений свелся к тому, что главное - не язык, а компилятор/интерперетатор?
Я знал, я знал!.. :-D

Sahas ★★★★☆
()
Ответ на: комментарий от Gleb-ax

хорошо, что ты раньше это не запостил :D

хотя вон в паре тестов пистон еще выигрывает. наверное это что-то значит ...

antony986
() автор топика
Ответ на: комментарий от antony986

> это вообще принципиальная ошибка. Правильно другие языки реализовывать на лиспе, а не лисп --- поверх других языков.

а зачем нам интерпретатор, если у нас есть компилятор?

korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

>Достоинством динамической компиляции является то, что скорость интерпретации программ становится сравнимой со скоростью исполнения программ в обычных компилируемых языках, при этом сама программа хранится и распространяется в единственном виде, независимом от целевых платформ.

Этот метод хорошо подходит для веб-приложений. Соответственно, динамическая компиляция появилась и поддерживается в той или иной мере в реализациях Java, Microsoft .NET, Perl, Python.

ну как то так, наверное

antony986
() автор топика
Ответ на: комментарий от korvin_

во всяком случае в контексте

а зачем нам интерпретатор, если у нас есть компилятор?

<поток ...>

вывод из Вашего комментария неочевиден

korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

Этот метод хорошо подходит для веб-приложений

antony986
() автор топика

ШГ!^W Ты сперва скобки расставлять научись, расстановщик.

/me чуть глаза не поломал

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.