The OpenNET Project / Index page

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

Unladen Swallow - новая реализация интерпретатора Python на базе LLVM

15.07.2009 17:03

Несколько работников из компании Google, принимающие участие в разработке CPython, объявили о выпуске новой версии высокопроизводительной экспериментальной реализации интерпретатора языка Python - Unladen Swallow, в которой производится обкатка некоторых идей по существенному увеличению производительности.

Как значительный шаг вперёд, отмечается переход со стековой виртуальной машины интерпретатора на регистровую (LLVM), что позволило подключить к работе JIT-компилятор, на лету транслирующий наиболее часто используемые функции языка в исполняемый код. И хотя разработчики пока не рекомендуют использование данного ПО в промышленной эксплуатации, оно уже проходит все стандартные тесты на совместимость с базовой реализацией языка, что позволяет использовать Unladen Swallow в таких проектах, как Twisted, Django, NumPy и Swig.

  1. Главная ссылка к новости (http://lwn.net/Articles/341338...)
  2. OpenNews: Разработчики Google задались целью сделать Python интерпретатор в 5 раз быстрее
Автор новости: Peter Vereshagin
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/22611-python
Ключевые слова: python, jit, llvm
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 19:30, 15/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Чувствую близится время, когда понятия "язык программирования" и питон станут синонимами. День ото дня становится всё лучше, язык дышит, в отличие от Java и C#, которые с самого начала были "придавлены" мощью мегакорпораций. Подобная ситуация уже была давным давно, но на серваках, где поделия Microsoft и Sun были однозначно лучше, но стандартом де-факто стал убогий php...
     
     
  • 2.3, аноним (?), 20:28, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Бред это. Python ничем не лучше остальных языков, и свои косяки у него есть.

    Вот что реально происходит и радует - так это заворот всех языков на ограниченное множество виртуальных машин. Jython, JRuby, Rhino, Groovy, Quercus, Closure, Scala - это для JVM. C, C++, D, Fortran, Ada, теперь вот Python - это для LLVM. Parrot с немеряным набором языков, хотя он еще слишком сырой. Ну mono, не к ночи будь помянута.

    Все потуги с настоящими виртульными машинами выглядят малоинтересно, потому что в результате получается то, за что заслуженно ругают жаву. А вот LLVM выглядит действительно перспективно, позволяя в теории получить нативные бинарники из любых языков, даже полностью динамических (да, даже с eval) - в результате скоростные характеристики языков отойдут на второй план и можно будет писать быстрый софт на чем угодно - это во первых. Во-вторых, вероятно останется возможность запускать даже изначально нативный софт на виртуальной машине (либо запускать изначально нативный софт скомпиленный в байткод опять таки нативно с ahead of time compiler), и реализовать идеи, заложенные в Microsoft Singularity, не переписывая софт.

    В общем, пристально следим за развитием LLVM и ждем Java фронтенда.

     
     
  • 3.11, jahh (?), 23:52, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > и реализовать идеи, заложенные в Microsoft Singularity

    не ради флейма, а какие там новые идеи?

     
     
  • 4.13, Skynin (?), 23:57, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >> и реализовать идеи, заложенные в Microsoft Singularity
    >
    >не ради флейма, а какие там новые идеи?

    тотальный managed код. Даже на уровне драйверов железа.

     
     
  • 5.18, аноним (?), 06:18, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >тотальный managed код. Даже на уровне драйверов железа

    на такую авантюру - в хорошем смысле - способна только компания уровня microsoft

     
  • 3.21, Aleksey (??), 09:56, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С eval никакие бинарники невозможны, т.к. строку для вычисления можно формировать динамически, а значит компилятор никогда не сможет сказать какие модули надо будет запихнуть в выполняемый файл.
     
     
  • 4.24, demo (??), 12:15, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Хм... во-первых, согласитесь, что обычно нет задачи выполнения совсем уже произвольного кода. А для ожидаемого набора компилятору можно подсказать какие модули нужны. Типа как в cx_Freeze (средство для выпуска экзешки из python).
    Во-вторых - обсуждаемый проект это как я понял более-менее традиционный интерпретатор с JIT, т.е. среда исполнения включает в себя и компилятор из исходного текста в код виртуальной машины, и компилятор из кода виртуальной машины в машинный код.
     
  • 4.32, аноним (?), 18:06, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Компилятор, подключенный в виде библиотеки, разумеется. О том и речь.
     
  • 2.22, Iv945n (ok), 11:47, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Чувствую близится время, когда понятия "язык программирования" и питон станут синонимами.

    IMHO таки C-подобный синтакс с фигурными скобками для объектно-процедурных языков идеал. Начинал я, увы, с BASIC, имел дело с разными языками вообще, но самый естественный и красивый вариант синтаксиса это C/C++/Java/C#/PHP, совершенно не хочется ничего другого, особенно учёта компилятором форматирования кода.

     
     
  • 3.31, Аноним (-), 17:59, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ох уж эти холивары...

    Меня например, бесят конструкции вида
    class A{
      function doo {a=b+c;}
    };
    function{
    while(cond){
    foo();}}

    Каждому своё.

     
     
  • 4.34, terr0rist (ok), 22:35, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Каждому своё - 100%.

    А не бесит ли то, что каждый, кто хочет, изобретает своё и втюхивает нам очередной велосипед. Вот автомобили, например, уже все пришли к среднестатистическим 4 колёсам, двигателю спереди, круглому рулю, поворачивающему передние колёса, и обтекаемому дизайну. А тут понадобилось вводить реально бесящую (кого-то) систему "принудительного форматирования" кода, заменять ключевые слова, причём как-то (имхо) совсем невпопад - один def чего стоит - и пр.
    Лично я считаю, что прогресс придёт к тому, что будет проще и эффективнее всем (в пределах отношения Парето - 80%) писать на одном языке, с его компилируемой/транслируемой/скриптовой разновидностями, ну а 20% оставшихся фанатов никто не запретит писать на чём угодно.

    Питон после С/жава/жаваскрипта и тп - это что-то вроде праворульного бульдозера с гусеничным приводом. Конечно, это хорошо, что есть бульдозер. Но пусть на нём ездят бульдозеристы. Имхо.

     

  • 1.2, Просто прохожий. (?), 19:47, 15/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    При таких возгласах я боюсь дополнять и тем более возражать.
    И всё таки Ruby мне намного более симпатичен.
    Насчёт C#, Java --- +1
     
     
  • 2.4, Skynin (?), 21:29, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше б в Dalvik VM сделали JIT компиляцию. Потому что джаву "заслужено" ругают те кто до сих пор не сподобился узнать о таковой во всех приличных JVM (у SUN она называется HotSpot http://java.sun.com/javase/technologies/hotspot/ It includes dynamic compilers that adaptively compile Java bytecodes into optimized machine instructions)

    И второе - языки с динамической типизацией не вытеснят языки с статической типизацией. Поэтому нелепость ставить в конкуренты Java и C# - Python, Ruby, ...,

     
     
  • 3.6, аноним (?), 21:54, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Потому что джаву "заслужено" ругают те кто до сих пор не сподобился узнать о таковой во всех приличных JVM

    Не говорите глупостей.

     
     
  • 4.9, Skynin (?), 23:01, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Не говорите глупостей.

    Глупость ругать джаву образца конца 90ых, начала этого века :)

    А вот результаты Computer Language Benchmarks Game
    http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all&box=1
    где хорошо видно, как джава окружена настоящими нативными компиляторами.


     
     
  • 5.10, аноним (?), 23:20, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Глупость ругать джаву образца конца 90ых, начала этого века :)

    Не стройте себе иллюзий. Во-первых с чего вы придумали о 90х? У многих это поделие стоит самых последних версий, и они имеют неудовольствие наблюдать его тормознутость и неуемное потребление памяти. Напомните-ка, где был тот момент, когда вышла новая версия, и сотни людей написали в блогах: "о, вот теперь это можно использовать наравне с нативным софтом"?

    > А вот результаты Computer Language Benchmarks Game

    Детский сад. Кому нужна ваша числодробилка из десятка инструкций, которую вообще очень сложно неоптимально скомпилировать в нативный код? Возьмите машинку типа пня-4 с 512MB памяти, откройте любое приложение на java и аналог на, скажем, Qt4 и сравните потребление памяти и отзывчивость интерфейса. С появлением java софта на десктопе он начинает впервые за долгие годы использовать свап. Действительно такое чувство, что попадаешь в 90-е.

     
     
  • 6.12, Skynin (?), 23:54, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Это как раз вчерашние пэхаписты и несдающиеся сишники строят иллюзии Первая в... большой текст свёрнут, показать
     
     
  • 7.14, аноним (?), 00:35, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Рад, что вы признаете недостатки Java.
     
     
  • 8.16, Skynin (?), 01:09, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Для меня это не недостаток Вернее - продолжение достоинств и за все нужно плат... текст свёрнут, показать
     
  • 7.15, Skynin (?), 00:55, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    P.S. Ожидания:
    Опубликовано в журнале "Компьютерра" №49-50 от 15 декабря 1998 года
    В Java 2 реализована архитектура "подключаемых" (pluggable) виртуальных машин. Это означает, что с выпуском более совершенных виртуальных машин Java, таких, как давно ожидаемый оптимизирующий компилятор реального времени HotSpot
    http://offline.computerra.ru/1998/277/2134/

    Динамические же языки не вытеснят статические - потому что уже точно известно, для большого проекта, да еще многопоточного, динамические языки приводят к опасному и многотрудно тестируемому коду.

    Если кто и конкурент джаве, как универсальному ЯП и платформе, так это С#.

    пхп, питон, руби - живут в другом измерении, для других задач. И не потому что медленные, хотя конечно, быстрота пойдет им на пользу. А потому что изначально создавались для таких задач, где применение языков статических - неудобно, невыгодно, неоправдано затратно.

    Мидлваре же софт, уже точно обрел свои языки - Java и C#. Туда соваться могут только Scala, F#, может быть Haskell... Потому что для такого ПО критичны - скорость разработки (+отладки) и надежность (как в виде пропущенных ошибок, так и в виде безопасности самого синтаксиса языка. Например - для многопоточных приложений)

     
     
  • 8.20, Павел (??), 09:08, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Java сама сдохнет, тк более глюкавого поделия не найти не компилятор, не вм, а ... текст свёрнут, показать
     
     
  • 9.27, Skynin (?), 14:19, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Субкультура - это форумные рассуждения начинающих о моднявом А Java - просто ... текст свёрнут, показать
     
  • 7.25, dq0s4y71 (?), 13:35, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Но напомните, а то я вот тоже запятовал, чего это народ массово отказался от С/С++ и пересел на перлы с пхп? Не иначе, ради быстродействия программ и экономии ОЗУ :)

    Во-первых, почему вы решили, что "народ массово отказался от С/С++"? Страуструп, например, так не считает (http://www.research.att.com/~bs/bs_faq.html#decline). Во-вторых, извините, но сама фраза "пересел на перлы с пхп" выдает в вас того самого студента. :) Профессионал не "сидит" и не "пересаживается" с одного языка на другой, а использует их в зависимости от поставленной задачи. Грубо говоря, вы используете плоскогубцы вместо отвертки не потому, что они "красивее", а исходя из того, что вы будете ими делать. :)

     
     
  • 8.26, Skynin (?), 14:07, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А что, CGI пишутся массово на С С А на чем пишут штатные программисты в комме... большой текст свёрнут, показать
     
     
  • 9.30, dq0s4y71 (?), 17:43, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А что, CGI пишутся массово Так на чем же Понятно И вы о них, конечно же, знае... большой текст свёрнут, показать
     
  • 6.23, Iv945n (ok), 12:03, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Детский сад.

    Люди, показывающие пальцем и публично объявляющие других дураками обычно сам не блещут (в т.ч. разумеется, и я, раз я не удержался и об этом говорю). Так, наблюдение.

    >Кому нужна ваша числодробилка из десятка инструкций, которую вообще очень
    >сложно неоптимально скомпилировать в нативный код? Возьмите машинку типа пня-4 с
    >512MB памяти, откройте любое приложение на java и аналог на, скажем,
    >Qt4 и сравните потребление памяти и отзывчивость интерфейса. С появлением java
    >софта на десктопе он начинает впервые за долгие годы использовать свап.
    >Действительно такое чувство, что попадаешь в 90-е.

    Код на языках такого уровня как Java, C#, Ruby, Python - это, грубо, конечно, говоря, хорошо формализованное описание задачи. А её непосредственным решением занимается уже не программист, а компилятор/интерпретатор/VM. Это имеет аналогичный смысл как разделение исполнимого файла ворда и файла документа, как разделение представления и данных, как разделение обязанностей в фирме, и, внимание, как то, что сделали разработчики OGG Theora - зафиксировали формат и занимаются совершенствованием декодера (интерпретатора)

    IMHO.

     
  • 3.35, поцанчик (ok), 03:09, 17/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >> языки с динамической типизацией не вытеснят языки с статической типизацией.

    и что же вам даёт право так полагать?

     

  • 1.5, Diogene the Open Source programmer (?), 21:48, 15/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если питона разгонят до уровня явы, и таки сделают нормальные треды ... уууу! Скучно не будет!
    Можно например выйти на Gnome и предложить змеюку+LLVM вместо мони :-)
     
     
  • 2.7, аноним (?), 21:55, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Если питона разгонят до уровня явы

    Только бы не по памятежорству.

     
     
  • 3.19, cl2cru (?), 07:38, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    В 10 раз по сравнению с предыдущим кварталом увеличилось потреюление памяти в ласточке...

    Цитата:

    Lowlights:

    Memory usage has increased by 10x. We have thus far spent no time improving this; lowering memory usage is a goal for the 2009Q3 release

     
  • 3.36, поцанчик (ok), 03:10, 17/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>Если питона разгонят до уровня явы
    >
    >Только бы не по памятежорству.

    а питон уже по паметижорству обгоняет яву.

     
  • 2.8, anonymous (??), 22:14, 15/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >таки сделают нормальные треды

    Давно уже, man stackless

     
     
  • 3.17, F.Y. (?), 05:20, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Смеёшься? Из тонн питоньего софта под этим только хеловорд и запустится ...
    Считай что другой язык. В LLVM-же реализации озаботились убиением GIL-а, сечёшь?
     
     
  • 4.28, Дмитрий (??), 15:32, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Смеёшься? Из тонн питоньего софта под этим только хеловорд и запустится ...
    >
    >Считай что другой язык. В LLVM-же реализации озаботились убиением GIL-а, сечёшь?

    Хелловорд, говоришь? Ты наверно ничего не слышал про EVE Online, сервер которой на stackless написан...

     
     
  • 5.37, F.Y. (?), 03:55, 17/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > EVE Online, сервер которой на stackless написан...

    Имя вроде Дмитрий - а по русски не бум-бум.

    Хорошо - говорю медленно и большими буквами:
    Обычный питоний софт, коего тонны, а не то что специально на stackless писано!
    Вот из этого http://en.wikipedia.org/wiki/List_of_Python_software хотябы пол процента пойдёт? Да ты хоть великий и ужастый Django запусти сначала :)

    Google'Ы же делают дроп-ин реплэйсент, если выйдет - ничего переписывать не прийдёся, а работать будет со скоростью на уровне явы и трэды чесные!
    Ну ок - мы ж в сказаки не верим - придётся переписывать только толику малую :)

     
  • 4.33, аноним (?), 18:09, 16/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Смеёшься? Из тонн питоньего софта под этим только хеловорд и запустится ...

    Глупости. Посмотри tinypy, его дистрибутив весит 40kb. Не нашел пока, что на нем не работает.

     
     
  • 5.38, F.Y. (?), 04:13, 17/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Только с ним точно такая же проблема что и со стакелесс! См. пост №38, список софта для проверки - там же.
    Если коротко - это _не_ питон, а так - поделка "по мотивам", фейк.
     
     
  • 6.39, F.Y. (?), 04:14, 17/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Пост №37 сорри :)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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