По той ссылке, которую запостил ты, вместо сайта разработчика, вообще ничего нет, даже работающей ссылки на оригинал. Так что, это не тянет даже на лабораторную работу пока :)
> Вот за эти отступы Пытон и уполз 3 или 4 года назад в биореактор. Perl forever!!!!
Perl foreva за реальную перловку. Не менее 80 символов на строку!!! - вот на дефиз!!! Дайошъ прямоугольные исходники!!! Неровные углы у сорца? - В биореактор!!!
На самом деле, я это говорил Sub-ch'у, который запостил в новости ссиылку на какой-то задрипанный блог, на котором есть ссылка на неработающий якобы сайт разработчика.
>теперь проги на пистоне можно писать без этих идиотских отступов, которые меня всегда бесили.
а мне нравятся! к стати "пистон" в этом (использование отступов) не одинок хаскелевы лейауты из той же оперы, и надо сказать, что в хаскеле этот стиль (с отступами) очень популярен (и рекомендован к использованию). так чта гражданин атсасите!
http://trac.common-lisp.net/clpython/ почему-то отвалился, но там было написано, что ACL выбран из-за местного yacc. Почитай исходники, там всякие defgrammar торчат...
Там ещё было сказано в том смысле, что Allegro CL требуется _пока_. То есть я так понял есть планы то ли реализовать yacc, чтобы он был доступен и в других CL, то ли переписать без него. Наверное скорее первое.
> А ну теперь я понимаю, почему мне целый час доказывали, что пых-пых рвет его как тузек грелку
гы гы ...
да тебя жестоко обманули по обоим пунктам:
1. Нативный python - это не "всего лишь" интерпретатор. Например рекомендуется задуматься о назначении расширений .py, .pyc и .pyo
2. Никакой пых пых по скорости с питоном и рядом не валялся.
Пример fact(100):
time php fact.php
9.3326215443944E+157
real 0m0.081s
user 0m0.056s
sys 0m0.016s
time python fact.py
93326215443944152681699238856266700490715968264381621468592963895217599993229915 608941463976156518286253697920827223758251185210916864000000000000000000000000
Я бы сказал, обе цифры в пределах погрешности такого рода измерений. :) Да и не сильно друг от друга отличаются. И вообще смотреть надо... Короче на бенчмарк не тянет никак.
Прикольно, что предыдущий результат был получен на python 2.3, а вот на 2.4 еще веселее:
time python2.4 fact.py
93326215443944152681699238856266700490715968264381621468592963895217599993229915 608941463976156518286253697920827223758251185210916864000000000000000000000000
real 0m0.034s
user 0m0.028s
sys 0m0.004s
Это уже по сравнению с php в 2,5 раза разница.
PHP использовался 4.4.2
sco@solo:/tmp$ cat > fact.py
fact = lambda n: n<=1 and 1 or n*fact(n-1)
print fact(100)
sco@solo:/tmp$ cat > pass.py
pass
sco@solo:/tmp$ time python fact.py
93326215443944152681699238856266700490715968264381621468592963895217599993229915 608941463976156518286253697920827223758251185210916864000000000000000000000000
real 0m0.060s
user 0m0.036s
sys 0m0.024s
sco@solo:/tmp$ time python fact.py
93326215443944152681699238856266700490715968264381621468592963895217599993229915 608941463976156518286253697920827223758251185210916864000000000000000000000000
real 0m0.059s
user 0m0.044s
sys 0m0.016s
sco@solo:/tmp$ time python pass.py
real 0m0.058s
user 0m0.048s
sys 0m0.012s
sco@solo:/tmp$ time python pass.py
(defun fact (n) (if (<= n 1) 1 (* n (fact (1- n)))))
(time (dotimes (g 10000) (fact 100)))
Evaluation took:
0.179 seconds of real time
0.170974 seconds of user run time
0.007999 seconds of system run time
0 page faults and
38,640,048 bytes consed.
NIL
kpanic, вероятно приведя эти цифры ты подразумеваешь что у нас с тобой одинаковые тачки, одинаковый набор прог запущен и т.п. ?
В чем смысл этих цифр ?
P.S. я запускал на ноутбуке с Celeron-M 1.6 Ghz, 256 Mb RAM, kernel 2.6.16.12, Debian Sarge, KDE (konsole)
В CPython:
>>> from time import clock
>>> def fact(n):
if n <= 1:
return 1
else:
return n * fact(n-1)
>>> def test():
beg = clock()
x = xrange(10000)
for i in x: fact(100)
print clock() - beg
>>> test()
1.13079315947
В CLPython:
>>> def fact(n):
... if n <= 1:
... return 1
... else:
... return n * fact(n-1)
...
#<python-function fact @ #x2140e412>
>>> def test():
... x = xrange(10000)
... for i in x: fact(100)
...
; While compiling test:
Warning: Variable i is never used.
#<python-function test @ #x21440c82>
>>> time(test)
; cpu time (non-gc) 1,011 msec user, 0 msec system
; cpu time (gc) 30 msec user, 0 msec system
; cpu time (total) 1,041 msec user, 0 msec system
; real time 1,042 msec
; space allocation:
; 5 cons cells, 45,440,176 other bytes, 0 static bytesNone
в обоих случаях - выбрал лучший из 5 замеров
Как видите CLPython быстрее, хоть и не намного!!!
PS: если хотите померять сами:
в builins.cl вставить:
(defun pybf:time (f) (time (py-call f)))
в package.cl в секции :export добавить :time
PPS: моя AMD Athlon XP 1800