LINUX.ORG.RU
 
antony986

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


0

0

питон:

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 12.02.2010 17:54:05  

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

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

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

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 12.02.2010 17:29:36  
korvin_

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

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

** ()
[#] Ответ на: комментарий от baverman 12.02.2010 16:15:23  
antony986

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

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

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

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

* ()
[#] Ответ на: комментарий от korvin_ 12.02.2010 20:37:45  
antony986

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

* ()
[#] Ответ на: комментарий от antony986 17.02.2010 4:37:16  

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

* ()
[#] Ответ на: комментарий от Sahas 23.02.2010 13:27:36  
antony986

это он у них свелся, потому что нормального интерпретатора у них нет

* ()
[#] Ответ на: комментарий от Gleb-ax 24.02.2010 0:51:07  
antony986

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

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

* ()
[#] Ответ на: комментарий от antony986 24.02.2010 0:45:55  
korvin_

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

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

** ()
[#] Ответ на: комментарий от korvin_ 24.02.2010 18:27:33  
antony986

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

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

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

* ()
[#] Ответ на: комментарий от antony986 24.02.2010 21:45:15  
korvin_

и? вывод какой-то сделайте, а то непонятно к чему весь этот поток информации

** ()
[#] Ответ на: комментарий от korvin_ 24.02.2010 22:03:49  
antony986

мне кажется вывод есть в "потоке информации", не?

* ()
[#] Ответ на: комментарий от antony986 24.02.2010 22:05:18  
korvin_

> мне кажется вывод есть в "потоке информации", не?

не

** ()
[#] Ответ на: комментарий от korvin_ 24.02.2010 22:26:56  
korvin_

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

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

> <поток ...>

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

** ()
[#] Ответ на: комментарий от korvin_ 24.02.2010 22:28:50  
antony986

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

* ()
[#]  

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

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

anonymous ()