The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  +/
Сообщение от opennews on 13-Мрт-10, 00:20 
Увидел свет (http://morepypy.blogspot.com/2010/03/introducing-pypy-12-rel...) релиз PyPy 1.2 (http://pypy.org), интерпретатора Python 2.5 написанного на языке Python. Главное улучшение новой версии - появление JIT-компилятора, позволяющего при выполнении некоторых операций обогнать по производительности реализацию Python на языке Си (CPython), в то время как без использования JIT, CPython обгоняет PyPy в 2-3 раза. По заявлению разработчиков  PyPy  еще не готов для промышленной эксплуатации, но уже значительно приблизился к этой отметке.


Кроме высокой скорости работы, PyPy потребляет (http://pypy.org/features.html), по сравнению с CPython, меньше памяти. В PyPy также поддерживается бесстековый (Stackless) режим работы, позволяющий добиться массового параллельного выполнения микро-нитей (micro-threads). Для выполнения кода к которому нет доверия реализован режим изолированного выполнения, отличающегося от sandbox в CPython полной поддержкой всех возможностей языка, без выделени...

URL: http://morepypy.blogspot.com/2010/03/introducing-pypy-12-rel...
Новость: http://www.opennet.ru/opennews/art.shtml?num=25782

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  +/
Сообщение от usp on 13-Мрт-10, 00:20 
Как может Python обогнать Си. Неужели Си реализация настолько крива изнутри?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  +1 +/
Сообщение от Аноним (??) on 13-Мрт-10, 00:27 
Он умеет сам себя компилировать в машинный код.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  +1 +/
Сообщение от Damon (??) on 13-Мрт-10, 10:56 
>Как может Python обогнать Си. Неужели Си реализация настолько крива изнутри?

У самого сначала такая реакция была, потом внимательнее перечитал и все встало на свои места.

>> появление JIT-компилятора, позволяющего ... обогнать по производительности реализацию Python на языке Си

Далее:
>> JIT работает значительно быстрее интерпретации байткода

Ну и окончательно из wiki (http://ru.wikipedia.org/wiki/JIT):
>> Just-in-time compilation (JIT) (также известна как dynamic translation) — компиляция «на лету» — это технология увеличения производительности программных систем, использующих байт-код, путём трансляции байт-кода в машинный код непосредственно во время работы программы.

Таким образом подразумевается, что C'шный вариант -- тупо _интерпретирует_ байткод, PyPy же, сначала _компилирует_ байткод, в нативный код для платформы на которой работает, а потом выполняет.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

22. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  –1 +/
Сообщение от Mna (??) on 13-Мрт-10, 16:07 
> Таким образом подразумевается, что C'шный вариант -- тупо _интерпретирует_ байткод,

"байт-код С" нет такого, оно компилируется в asm/машинные коды!

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

23. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  +/
Сообщение от Damon (??) on 13-Мрт-10, 16:36 
> "байт-код С" нет такого, оно компилируется в asm/машинные коды!

Вы несомненно правы, насчет "байт-код Це", такого точно нет, хотя может где-нить и у кого-нить завалялся, но я про такой не слышал... Зато Python точно компилирует исходники в промежуточный байт-код, который CPython потом _интерпретирует_.

Вы вообще, знаете, чем интерпретатор от компилятора отличается, кроме букв в названии? Вот здесь доходчиво и на "Великом и Могучем", правда кратко, про Python описано -- http://adw0rd.ru/2009/python-howto-work/...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

30. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  –1 +/
Сообщение от User294 (ok) on 14-Мрт-10, 07:14 
>Как может Python обогнать Си. Неужели Си реализация настолько крива изнутри?

Дык, JIT vs интерпретатор, однако. Ессно JIT быстрее тупой интерпретации. Тупая интерпретация - самый тормозной вариант из всех возможных. Обычный классический питон - тупорылый тормозной интерпретер.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  +/
Сообщение от linux_must_die (ok) on 13-Мрт-10, 00:29 
ключевое слово 'некоторые операции'
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  –1 +/
Сообщение от Tav (ok) on 13-Мрт-10, 01:30 
Если все это кажется ненормальным, рекомендую ознакомиться с концепцией "Meta-circular evaluator" (интересно, как это по-русски называется): http://en.wikipedia.org/wiki/Meta-circular
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  +1 +/
Сообщение от минона on 13-Мрт-10, 02:37 
ну скорее бы уже вышел PyPyPy
а за ним - PyPyPyPy
сразу будет чем занять 4-я ядра
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  –8 +/
Сообщение от we7594 on 13-Мрт-10, 06:54 
Во-первых, это старая шутка.

А во-вторых, старые языки надо давно уже закопать, а весь юзерспейс писать на нормальных ЯП: на джаве или питоне.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  +/
Сообщение от Coder on 13-Мрт-10, 12:50 
Тогда уж и процессоры пора выпускать, которые сами будут понимать несколько высокоуровневых языков и компилировать код самостоятельно
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

21. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  +/
Сообщение от амонинус on 13-Мрт-10, 15:24 
ARM Jazelle?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

26. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  +/
Сообщение от User294 (ok) on 14-Мрт-10, 07:00 
Что самое интересное:
1) Оно не документировано. Прикиньте? Вот так захотите вы написать что-то юзающее его и обломитесь если NDA подписывать вломак :)
2) Оно ориентировано сугубо на яву...
3) Оно ускоряет только некоторые операции
4) И все-равно яве это не сильно помогает в конечном итоге.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

27. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  +/
Сообщение от User294 (ok) on 14-Мрт-10, 07:05 
>А во-вторых, старые языки надо давно уже закопать, а весь юзерспейс писать
>на нормальных ЯП: на джаве или питоне.

Это чтобы четырехъдерники начали тормозить как первые пеньки и гигазы оперативки было чем занять вместо дисковых буферов? Сперва сделайте скорость работы этих тормозил не хуже прог на сях, а потом вещайте уже. А то монструозные тормозилки которые стартуют как проги для спекки грузящиеся с ленты и жрущие вагон ресурсов - юзеров не очень радуют и поэтому захват мира жабисты обещают нам наверное уже этак с ~десятилетие. А никакого захвата мира все не случается и не случается. Прямо как конец света который все отодвигается и отодвигается :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

32. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  +/
Сообщение от аноним on 14-Мрт-10, 15:55 
> нормальных ЯП: на джаве или питоне

Толсто.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

36. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  +/
Сообщение от Stocker on 14-Мрт-10, 18:23 
+1, гугл тоже так думает. Только тут все лают на джаву, но при этом обожают питон без jit'а.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  –1 +/
Сообщение от Alen (??) on 13-Мрт-10, 06:54 
И не говори, что то эти халтурщики заметно отстают от ядроклепателей из интела, видимо пора переходить на новый уровень, написать на питоне циклоразмножатель PyPyPy.......n*Py
:)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  –1 +/
Сообщение от Damon (??) on 13-Мрт-10, 10:49 
> ... PyPyPy.......n*Py

n*Py = Py + Py + Py + ... + Py

Тогда уж -- Py^n ;-)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

28. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  –1 +/
Сообщение от User294 (ok) on 14-Мрт-10, 07:05 
>n*Py = Py + Py + Py + ... + Py

А потом на месте процессора образуется черная дыра, когда рекурсия уйдет в бесконечность? oO

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

34. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  +/
Сообщение от аноним on 14-Мрт-10, 16:49 
>А потом на месте процессора образуется черная дыра, когда рекурсия уйдет в
>бесконечность? oO

кстати, о черных дырах, квантово-гравитационных компьютерных механизмах, вложенных вселенных, Пенроузе и Ли Смолине тут:
http://lj.rossia.org/users/tiphareth/1215094.html
так что, как бы я не любил питона, но за Py^n будущее :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt"  +/
Сообщение от Coder on 13-Мрт-10, 12:54 
>И не говори, что то эти халтурщики заметно отстают от ядроклепателей из
>интела, видимо пора переходить на новый уровень, написать на питоне циклоразмножатель
>PyPyPy.......n*Py

Не просто циклоразмонжитель, а создатель высокоуровневых языков на лету с компиляторами

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "Релиз PyPy 1.2, реализации Python, написанной на языке Pytho..."  +4 +/
Сообщение от anonymous (??) on 13-Мрт-10, 10:33 
"It is still memory-hungry. There is no limit on the amount of RAM that the assembler can consume; it is thus possible (although unlikely) that the assembler ends up using unreasonable amounts of memory."

Это по ссылке. Автор новости творчески переосмыслил?

"Кроме высокой скорости работы, PyPy потребляет, по сравнению с CPython, меньше памяти"

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

37. "Релиз PyPy 1.2, реализации Python, написанной на языке Pytho..."  +/
Сообщение от аноним on 15-Мрт-10, 00:38 
Хм, это что, генетическая проблема любого JIT? Объем кода ограничен, с какого хрена JIT занимает больше памяти, чем занял бы соответствующий нативный бинарник? Или все программы на питоне из eval'ов строк состоят, на которые надо каждый раз новый код генерить?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

24. "Релиз PyPy 1.2, реализации Python, написанной на языке Pytho..."  +1 +/
Сообщение от pro100master (ok) on 13-Мрт-10, 18:59 
посмешили результаты:
cnt = 10 * 1000 * 1000
for _ in xrange(cnt):
    i = i + 1

примерно в 10 раз медленнее gcc. Уверен, тут будет, как со сторонниками джавы :)))

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

29. "Релиз PyPy 1.2, реализации Python, написанной на языке Pytho..."  +/
Сообщение от User294 (ok) on 14-Мрт-10, 07:11 
gcc в таком случае зачастую оптимизит и сразу делает возврат нужного значения. Удачи сделать его при этом, ага :). Пока супер-пупер jit движки и прочие мегамонстры только запустсятся, у gcc результат уже 20 раз будет на выходе :)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

25. "Релиз PyPy 1.2, реализации Python, написанной на языке Pytho..."  +/
Сообщение от Аноним (??) on 13-Мрт-10, 20:49 
потестил два варианта, на python2.6, pupy1.2, и fpc2.4.0

def test():
    r = 0
    for i in range(0, 10000):
        for j in range(0, 10000):
            r = (r + (i * j) % 100) % 47
    return r
print(test())
--------------
function test : integer;
var
  r : integer = 0;
  i, j : integer;
begin
  for i:=0 to 10000 do
    for j:=0 to 10000 do
      r:=(r + (i*j) mod 100) mod 47;
  test:=r;
end;
begin
  writeln(test);
end.
-------------
На паскале компилил с опцией release.
Результаты:

$ time python python_example.py
39

real    0m37.146s
user    0m37.130s
sys    0m0.000s

$ time ./pascal_example
39

real    0m6.859s
user    0m6.830s
sys    0m0.010s

$ time ./bin/pypy python_example.py
39

real    0m5.534s
user    0m5.520s
sys    0m0.010s

)))) Забавно))))

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

31. "Релиз PyPy 1.2, реализации Python, написанной на языке Pytho..."  +/
Сообщение от Salvator email on 14-Мрт-10, 12:07 
попробуйте в питоновом коде использовать xrange вместо range. по идее, еще быстрее должно работать)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

38. "Релиз PyPy 1.2, реализации Python, написанной на языке Pytho..."  +/
Сообщение от Аноним (??) on 15-Мрт-10, 08:40 
У меня тот же код с Cpython отрабатывает за 33,591 сек, а с

import psyco
psyco.full()

за 4,025 сек. :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

33. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  +/
Сообщение от аноним on 14-Мрт-10, 15:57 
И толку от этого pypy? Какая у него совместимость с python 25,26,31? Его можно использовать как drop-in заменитель нормального питона? Почему jit вообще разработали как сторонний проект?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

35. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  +/
Сообщение от jbo (??) on 14-Мрт-10, 17:31 
пока только поигратся
pypy непонимает С API тоесть про PIL, mysql можно забыть (можно конечто через костыль rpyc, но при этом теряем скорость)
нет x86_64
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

39. "Вышел PyPy 1.2, интерпретатор Python написанный на языке Pyt..."  +/
Сообщение от Mna (??) on 26-Мрт-10, 07:53 

У меня тот же код занял времени:
Python - 22.9с
Cython - 13.2с  (неоптимизорованный, т.е. без описанных типов)
PyPy   -  2.6с
Cython -  1.4с  (с описанными типами, добавлена строка: cdef int r,i,j)

Unladen Swallow - нескомпилировался сам - требует построить на слишком новый LLVM (2.7)
Psyco - рабочих бинарников не было, а исходники отказались работать на 64 битах, и предложили перейти на PyPy

Собственно, PyPy себя оправдал, хотя также работает только на 32 битах. Вобщем, можно рекомендовать его
использовать.

В данном случае вычислений, быстрее Cython-а с описанными типами невозможно, поскольку код уже получился
самый оптимальный, видно по сгенерированному С-коду. Может для более сложного кода что-то и изменилось бы.
Но он требует описаний типов, что замедляет разработку, и не для каждого случая приемлемо, особенно если
PyPy ненамного медленнее.

===
$ time python x-py.py
39

real    0m22.907s
user    0m22.809s
sys    0m0.018s

[Cython]$ time python -c "import xpy"
39

real    0m13.264s
user    0m13.173s
sys    0m0.011s

$ time ./pypy-1.2/bin/pypy x-py.py
./pypy-1.2/bin/pypy: /usr/lib/libcrypto.so.0.9.8: no version information available (required by ./pypy-1.2/bin/pypy)
./pypy-1.2/bin/pypy: /usr/lib/libssl.so.0.9.8: no version information available (required by ./pypy-1.2/bin/pypy)
39

real    0m2.615s
user    0m2.592s
sys    0m0.010s

[Cython]$ time python -c "import xpy2"
39

real    0m1.426s
user    0m1.388s
sys    0m0.009s

Но надо сказать, что PyPy работает только как 32-битная программа, что конечно ...не так прекрасно.
Другой его минус - что он (PyPy) застрял на версии питона 2.5.2 (когда 2.6.4 на дворе)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру