The OpenNET Project / Index page

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

Разработчики Google задались целью сделать Python интерпретатор в 5 раз быстрее

28.03.2009 12:23

Разработчики Google представили открытый проект Unladen Swallow, нацеленный на ускорение выполнения Python скриптов, пообещав обеспечить пятикратный прирост производительности. Подобных результатов планируется достичь путем замены виртуальной машины стандартного Python интерпретатора на JIT-компилятор (основан на LLVM), на лету транслирующий скрипты в исполняемый код.

Кроме замены виртуальной машины, список изменений затрагивает изменение механизма блокировок, оптимизацию для работы на многоядерных CPU за счет распараллеливания вычислений, переработку сборщика мусора для работы в неблокирующем режиме, улучшение средств для создания многопоточных программ.

Unladen Swallow основан на коде стандартного интерпретатора CPython 2.6.1 и обеспечивает полную совместимость с ним. При этом, в настоящий момент развития проекта, Python скрипты в среднем выполняются в первом тестовом выпуске Unladen Swallow быстрее на 15-25%, только благодаря дополнительным оптимизациям без замены виртуальной машины. На второй квартал 2009 года намечен второй тестовый релиз, уже основанный на JIT-компиляторе.

При всей инновационности разработки, разработчики стараются возвращать в базовый Python интерпретатор как можно большей патчей, нацеленных на оптимизацию работы. В конечном итоге планируется полностью интегрировать результат работы в стандартный CPython и адаптировать разработку для ветки Python 3.

  1. Главная ссылка к новости (http://arstechnica.com/open-so...)
  2. OpenNews: Новый оптимизирующий транслятор Python кода в C++
  3. OpenNews: Возможность разрабатывать скрипты для web-браузера на языках Си и Python
  4. OpenNews: Компания Adobe представила C/C++ компилятор, генерирующий код для Flash
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/20981-python
Ключевые слова: python, speed, code, optimization, llvm
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Анонимус (?), 12:43, 28/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >LLVM JIT-компилятор, на лету транслирующий скрипты в исполняемый код.

    Ух ты, а можно то же самое и для Groovy?

     
     
  • 2.2, lololo (?), 12:58, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Ух ты, а можно то же самое и для Groovy?

    А java разве jit не использует?

     
  • 2.23, thevery (??), 20:27, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    это вы про что вообще? 0_О
     
  • 2.31, F (?), 15:37, 29/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    В Groovy это уже есть (используется JVM).
     
  • 2.33, petr (??), 17:28, 29/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    дело понятное, кризис - нового железа закупать с выше приказа небыло, вот и оптимизируют
     

  • 1.3, Аноним (-), 13:10, 28/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот это по нашему
     
  • 1.4, Аноним (-), 13:37, 28/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Удачи! Больше языков, хороших и разных!
    Задавим M$ вместе!
     
     
  • 2.7, СуперАноним (?), 14:12, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Много не надо. Если будет много сами запутаемся, перессоримся и M$ не задавим. M$-у наши раздоры только на руку. Лучше, немного хороших объектноориентированных.
     
     
  • 3.9, 123456 (??), 14:46, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    правда жизни состоит в том, что M$у глубоко пофиг на ваши раздоры
     
     
  • 4.14, СуперАноним (?), 15:14, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Ну-ну. Пока в нашем стане постоянно будут войны "то vs это" у нас, например, так и не появится единого вменяемого API. Вендоры коммерческого софта и дальше будут ложить на GNU/linux, делая его только по ОСь от M$. И только не надо говорить, что нам не нужны эти Автокады с Фотопопами и Одноэсами.
     
     
  • 5.16, СуперАноним (?), 15:20, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    То же и про зоопарк языков программирования. Туча малоизвестных ЯП, на некоторых всего-лишь пара проектов. Адепты одного такого ЯП грызутся с адептами другого. Это, конечно, "повышает" имидж свободного ПО.
     
     
  • 6.25, Gambler (??), 23:21, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Не будет малоизвестных языков - не будет развития. Ruby тоже был малоизвестным в начале.
     
     
  • 7.26, thevery (??), 00:35, 29/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    лучше б он таким и оставался...
     
  • 7.28, . (?), 03:09, 29/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Ruby тоже был малоизвестным в начале.

    вы ему льстите

     
  • 5.37, asavar (ok), 10:58, 30/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Пока в нашем стане постоянно будут войны "то vs это"...

    Конкуренция, поиск новых решений и свежие идеи всегда двигали мир опенсорса. Об этом говорили и Торвальдс и многие другие (совсем вот недавно - про единый линукс, или 73 открытые лицензии), и это много раз обсуждалось, в том числе, и на опеннете.

     

  • 1.5, Владимир (??), 13:52, 28/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    давно пора.
     
  • 1.6, vadiml (?), 14:07, 28/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Догоним и перегоним Perl?
     
     
  • 2.10, 123456 (??), 14:47, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    скорее дотнет и яву
     
     
  • 3.15, User294 (ok), 15:14, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >скорее дотнет и яву

    У питона еще и с песочницами не ахти.Вон в Battle for Wesnoth его юзали для AI скриптов.Вроде разумное применение - особой скорости там не надо, считать вроде может, свой интерпретер клепать не надо, зачастую есть в системе, т.е. вроде как к месту.А закончилось все тем что пришло понимание того что AI скрипты которые по задумке ограничены тем не менее могут творить в системе что угодно а песочницы, увы, не работают.Ессно в итоге просто вырубили сий фич совсем: грузить юзеру скрипты которые могут неограниченно шариться по системе - хреновая идея.В жаве как минимум пытаются работающую песочницу изобразить.Да, ее регулярно ломают... но в питоне даже так не получается насколько я понял.А иногда для скриптоязыка ограничения могут быть полезны.Зачем бы тому же AI скрипту возможность лазить по всей моей системе?Ему требуется уметь считать и не более того, а то что при отсутствии ограничений запросто найдутся уроды которые вместо AI скрипта подгрузят спамилку\проксю - это как пить дать :)

     
     
  • 4.20, dfvsdfvdfv (?), 17:23, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >У питона еще и с песочницами не ахти.

    В гугле, в App Engine как-то сделали же песочницу.

     
     
  • 5.21, xen (??), 18:36, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    там просто свой скомпилированный питон стоит, без физического присутствия системных сишных библиотек и эта новость как раз подтверждает эту теорию
     
  • 4.27, junker (?), 01:02, 29/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Да всё у питона в порядке. Civilization IV на нём написана - и ничего. Главное правильно применить.
     
     
  • 5.36, SkyRanger (??), 01:20, 30/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Да всё у питона в порядке. Civilization IV на нём написана -
    >и ничего. Главное правильно применить.

    Eve-online на нем работает и весьма успешно.

     
     
  • 6.38, Aleksey (??), 12:54, 30/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Ага. И причем тут песочница. Никто не спорит, что на питоне можно написать прогу. Проблема в том, что пользовательские скрипты на питоне никак не ограничить в правах.
     

  • 1.8, Аноним (-), 14:32, 28/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не понял только одного
    в пять раз быстрее - это означает "разнесем выполнение на пять ядер" или "оптимизируем код и ускорим его в пять раз на одном ядре" ?
     
  • 1.11, Аноним (-), 14:47, 28/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм, если сейчас питон сливает с++ в 100 раз, то в будущем будет всего в 20 ... ну ну ...
     
     
  • 2.17, Аноним (-), 15:43, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Хм, если сейчас питон сливает с++ в 100 раз, то в будущем
    >будет всего в 20 ... ну ну ...

    Сравнивать  Python и С++ - как сравнивать автобус и болид формулы-1. В первый помещается больше пассажиров, но он медленный, второй жутко быстрый, но даже маленькая кочка приведёт к катастрофе.

     
     
  • 3.18, . (?), 16:15, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >даже маленькая кочка приведёт к катастрофе

    редко вы смотрите формулу :)
    завтра первое гран-при в сезоне. не пропустите

     
  • 2.22, xen (??), 18:43, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Хм, если сейчас питон сливает с++ в 100 раз, то в будущем
    >будет всего в 20 ... ну ну ...

    а C++ в 500 раз медленнее ассемблера, вот только почему-то массово на нем не пишут.

    И проигрывает не в 100 раз, а в 10, да и если уж на то пошло, то в критических местах пишут на С, а потом делают врапер.

     
     
  • 3.32, Alexey (??), 15:54, 29/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Прям в 500? Ладно. Приведите пример в котором проигрыш хотя бы в 10 раз. Т.е. пример оптимизированных функции на ASM и на C++, между которыми наблюдается такой феномен.
     
  • 3.34, szh (ok), 18:04, 29/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > а C++ в 500 раз медленнее ассемблера

    не фантазируй вслух, дядя.

    P.S. C++ медленнее perl по скорости разработки. А assembler медленнее C++.

     

  • 1.12, Аноним (-), 14:54, 28/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > в пять раз быстрее - это означает "разнесем выполнение на пять ядер" или
    > "оптимизируем код и ускорим его в пять раз на одном ядре" ?

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

    # Produce a version of Python at least 5x faster than CPython.


    # We intend to structure Unladen Swallow's internals to assume that multiple
    # cores are available for our use. Servers are only going to acquire more and
    # more cores, and we want to exploit that to do more and more work in parallel.

    посмотрим что у них получится. Хотелось бы и "оптимизируем" и в том числе "на одном ядре"

    # Задавим M$ вместе!
    Они сами себя давно уже давят. Им без разницы ресурсоемкость и производительность программ, их подход прост - вам нужна наша программа? Покупайте под нее отдельный сервер. Им главное - быстрота разработки, больше их ничего не волнуют. Это мое imho, конечно.

     
     
  • 2.19, Guest (??), 16:22, 28/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Это мое imho, конечно.

    Это не imho, это чистая правда.


     

  • 1.24, QMaster (??), 22:36, 28/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как всегда ЭТО будет работать только на х86, как их СДК под робот-ведроид. Причем как можно было искурочить вполне себе кросс-платформенный qemu я себе даже не представляю.
     
     
  • 2.29, thevery (??), 04:42, 29/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    думаю, они просто выкинули остальные архитектуры-платформы для простоты - ибо 99+% разработчиков всё равно имеет x86(_64) машины...
     
  • 2.30, xen (??), 05:58, 29/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Вы бы хоть на код посмотрели, чтобы никто не думал что опеннет посетило стадо клоунов из погорелого цирка. А для людей с плохим зрением в новости написали, что код будет контрибутиться назад в основной Python.
     
     
  • 3.39, none (??), 13:19, 30/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Вы бы хоть на код посмотрели, чтобы никто не думал что опеннет
    >посетило стадо клоунов из погорелого цирка. А для людей с плохим
    >зрением в новости написали, что код будет контрибутиться назад в основной
    >Python.

    а вы уже посмотрели? так скажите чего там, тыкать пальчиком много ума не надо.

     
     
  • 4.40, гость (?), 15:59, 30/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    вот интересно зачем велосипеды, если на perl это и есть JIT?

    может предожить гуглу bash сделать в 10 раз быстрее?

     
  • 2.41, ximaera (?), 19:57, 31/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    У Google, насколько я знаю, преимущественно x86-сервера. Чего ради им надо смотреть на другие архитектуры?

    Вам надо, вы и портируйте.

     

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



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

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