LINUX.ORG.RU

PyPy 1.7

 , ,


0

2

Вышла очередная версия PyPy — интерпретатора языка программирования Python, который написан на Python и может компилировать сам себя. Основным изменением этого выпуска является значительный прирост производительности. В среднем на тестовом пакете, прирост производительности PyPy 1.7 составляет около 30%, по сравнению с PyPy 1.6 и до 20 раз быстрее на некоторых тестах.

Основные изменения:

  • исправление ошибок, совместимость исправлений с CPython;
  • исправления в Windows-версии;
  • в PyPy 1.7 по умолчанию включен stackless;
  • NumPy был переименован в numpypy;
  • JSON encoder заменен на новый, написанный на чистом Python, превосходящий по скорости CPython с расширениями на С в 2 раза;
  • уменьшено потребление памяти некоторыми RPython модулями.

Ссылка для загрузки.

>>> Подробности

★★★★★

Проверено: maxcom ()

Ответ на: комментарий от anonymous

> Ответ касался дизайна языка. Если полноценной поддержки потоков не будет, его можно хоронить.

Поддержка нитей - это не вопрос дизайна языка, а вопрос дизайна рантайма. Говорят, что у IronPython и Jython с нитями всё нормально.

tailgunner ★★★★★ ()
Ответ на: комментарий от anonymous

Да, в самом начале прозвучала теза, что питон идеален для веб-программирования.

С каких пор веб критичен к производительности морд? Вместо одного лиспера в стойку можно поставить десять серверов.

baverman ★★★ ()
Ответ на: комментарий от anonymous

> Real-time CORBA Middleware - это настоящий highload

Ы. А причем тут RT CORBA?

tailgunner ★★★★★ ()
Ответ на: комментарий от anonymous

>Не в твоей унылой провинции.

Провинция, она сразу за МКАДом (как и ты), а я внутри него.

А так вообще - есть вакансии.

Да, я как-то видел сразу 3. На всю Россию.

В гугле и яндексе - точно используется, помню как они в своё время искали программистов.

О да, если где-то пять лет назад проскакивала вакансия, это называется «используется» xD

anonymous ()
Ответ на: комментарий от namezys

Да ладно. Отлично живет.

ты же сам приводил пример что чтобы загрузить 24 ядра приходится 24 копии держать, не?

Я понимаю что если данные не меняются то можно сначала их загрузить а потом форк сделать чтобы не было дублей. Или новые ядра поставить которые умеют дедуплицировать одинаковые страницы памяти... Но всё это полумеры. Если надо много воркеров и чтобы у них была общая память с общими объектами... решений я пока не знаю.

Я как-то хотел прикрутить что-нить на основе shmem... В принципе, это возможно, только надо будет или допиливать gc(тут он распределённый получается) или какие-то ещё костыли писать...

true_admin ★★★★★ ()
Ответ на: комментарий от namezys

Просто в этом нет необходимости.

и, следовательно, отпадает тезис про 3Гб на сервер

shty ★★★★★ ()
Ответ на: комментарий от namezys

>Что-то питонщиков мы еле еле нашли

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

anonymous ()
Ответ на: комментарий от true_admin

>Если надо много воркеров и чтобы у них была общая память с общими объектами... решений я пока не знаю.

КО подсказывает, что это threads pool. Линукс спокойно переносит тысячу потоков, видел это на яве.

anonymous ()
Ответ на: комментарий от anonymous

что все веб-фреймворки на питоне годятся только для рисования морд?

Я даже боюсь спросить что вы еще делаете *веб*-фрейворками, кроме рисования морд.

baverman ★★★ ()
Ответ на: комментарий от anonymous

> Провинция, она сразу за МКАДом (как и ты), а я внутри него.

МОжет вы ЗП хотели в 250 штук?

Да, я как-то видел сразу 3. На всю Россию.

Мы до сих пор ищем

namezys ★★★★ ()
Ответ на: комментарий от true_admin

> ты же сам приводил пример что чтобы загрузить 24 ядра приходится 24 копии держать, не?

Нам просто сейчас такое не надо, поэтому и живет. а вот если бы надо было, то «ужас»

В принципе, это возможно, только надо будет или допиливать gc(тут он распределённый получается) или какие-то ещё костыли писать...

лучше уж костыли, его gc убог

namezys ★★★★ ()
Ответ на: комментарий от anonymous

> Вакансий нет, нет и питонщиков, ибо невыгодно тратить время на то, что не принесет гарантированно прибыли в будущем

Странно. А нам hh говорили, что спрос очень большой.

да и приходило к нам человек 30. Из них дай бог одного взять можно.

namezys ★★★★ ()
Ответ на: комментарий от namezys

>МОжет вы ЗП хотели в 250 штук?

Ви-таки намекаете, что надо хотеть столько, чтобы хватило не более чем на 1 миску риса в неделю?

Мы до сих пор ищем

Может вы ЗП предлагаете эквивалентную 4 мискам риса?

anonymous ()
Ответ на: комментарий от namezys

>Странно. А нам hh говорили, что спрос очень большой.

Я вот тут в газете прочитал, что стране не хватает экономистов, да.

да и приходило к нам человек 30. Из них дай бог одного взять можно.

Меньше носом вертеть надо.

anonymous ()
Ответ на: комментарий от anonymous

Кстати, предполагается использование модели «облачных вычислений», как у питона дела с поддержкой этих технологий?

anonymous ()
Ответ на: комментарий от anonymous

> Может вы ЗП предлагаете эквивалентную 4 мискам риса?

Интересно, а вы нашли ЗП в 250 штук для других программистов?

namezys ★★★★ ()
Ответ на: комментарий от namezys

>Интересно, а вы нашли ЗП в 250 штук для других программистов?

Да, как ни странно. Угадай с одного раза, что за язычок.

anonymous ()
Ответ на: комментарий от anonymous

>Интересно, а вы нашли ЗП в 250 штук для других программистов?

Да, как ни странно. Угадай с одного раза, что за язычок.

американский шершавый?

shty ★★★★★ ()
Ответ на: комментарий от Ok

Ты так говоришь, будто python - недоязычок...

Deleted ()
Ответ на: комментарий от aptyp

Ты так говоришь, будто gcc генерирует настолько плохой код, что его уделывают прям все, кому не лень...

А между тем, пока даже самые успешные конкуренты уделывают его только в очень специфичных задачах.

Deleted ()
Ответ на: комментарий от Deleted

я так шучу и мечтаю, только им и пользуюсь, правда на динамические языки переключаться буду...
расслабься:-)

aptyp ★★★★ ()
Ответ на: комментарий от namezys

CPythone медлененее PyPy. На нем реализация чего-то оказалась мделенее, чем аналогичные действия на С, но с другой релаизацией. А вот на PyPy оказалось быстрее.

Это на сравнение яблок с бананами тянет.

Casus ★★★★★ ()
Ответ на: комментарий от baverman

Shimon же дал верное пояснение. Перед началом блокирующего IO освобождается GIL. Так что AIO здесь не при делах.

А какая связь внутреннего лока интерпретатора с принципиальной блокировкой FIO? Кто-то не понимает что говорит. Не блокируется FIO только в случае реализации через AIO, но это крайне сомнительно. Однако, рассуждать дальше я согласен, только если ты хотя бы до этого места поймёшь.

Casus ★★★★★ ()
Ответ на: комментарий от baverman

Таких приложений большинство. Тупые мордочки по доставанию данных из бд и вкорячиванию переменных в шаблоны. О том и речь.

Сочувствую. Моё последнее приложение имело 40,000 строк кода на Perl.

Casus ★★★★★ ()
Ответ на: комментарий от Casus

Кто-то не понимает что говорит.

Скорее кто-то не понимает, что читает. Как блокирование на файловых операциях может помешать выполнятся другим потокам?

baverman ★★★ ()
Ответ на: комментарий от Casus

Моё последнее приложение имело 40,000 строк кода на Perl.

С каких пор вычислительная тяжесть приложения определяется числом строк?

baverman ★★★ ()
Ответ на: комментарий от q11q11

Такой есть в eyeOS (правда, он на php + javascript, но все же).

Deleted ()
Ответ на: комментарий от q11q11

> браузер на JavaScript в котором будет поддержка JavaScript и который сможет запускатся сам внутри себя

Firefox.

geekless ★★ ()
Ответ на: комментарий от Casus

Моё последнее приложение имело 40,000 строк кода на Perl.

И да, давай профиль выполнения запросов, где показано, что на IO уходит меньше двух/третей времени.

baverman ★★★ ()

и что вы докопались до gil? если вы используете треды, вам все-равно надо думать о синхронизации доступа к памяти. при увеличении сложности решаемой задачи ее решение начинает сводится к бесконечной и борьбе с race-conditions и вы вряд ли получите что-то сильно лучше gil. если вам действительно нужно загрузить все ядра, используйте процессы - лучше, чем share-nothing в многозадачности еще ничего не придумали (посмотрите на erlang). для web и других невычислительных задач очень хорошо работают уже не раз упоминавшиеся всевозможные greenlets.

anonymous ()
Ответ на: комментарий от anonymous

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

anonymous ()
Ответ на: комментарий от anonymous

> лучше, чем share-nothing в многозадачности еще ничего не придумали (посмотрите на erlang)

В том же Эрланге share-nothing реализовано в одном процессе :) Хотелось бы уметь это и на Питоне, и при этом чтобы эффективно.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

> В том же Эрланге share-nothing реализовано в одном процессе :) Хотелось бы уметь это и на Питоне, и при этом чтобы эффективно.

если вам всенепремменно хочется «однопроцессной многозадачности» в питоне, то либо используйте greenlets, либо реализацию питона без gil. хотя, мне кажется, вам просто нравиться морочить людям голову :)

anonymous ()
Ответ на: комментарий от anonymous

КО подсказывает, что это threads pool

КО не подсказывает что в питоне это не работает?

true_admin ★★★★★ ()
Ответ на: комментарий от anonymous

> если вам всенепремменно хочется «однопроцессной многозадачности» в питоне, то либо используйте greenlets

Это не многозадачность.

либо реализацию питона без gil

Они привязаны к жирным VM. Нормальная многонитевая работа - это то, о чем разрабов PyPy очень часто просят.

tailgunner ★★★★★ ()
Ответ на: комментарий от anonymous

> если вам всенепремменно хочется «однопроцессной многозадачности» в питоне, то либо используйте greenlets, либо реализацию питона без gil. хотя, мне кажется, вам просто нравиться морочить людям голову :)

greenlets не многозадачность. все в одном потоке работает. и это удобно только для задач с большим io, а для вычислений только добавит тормозов.

EvilBlueBeaver ()
Ответ на: комментарий от baverman

Как блокирование на файловых операциях может помешать выполнятся другим потокам?

Если потоки «зелёные», т.е. кооперативные, то очевидно как. Я, собственно, не вникал что там на питоне, если честно. Тут уже всё перебрали, и зелёных, и птредов, и процессы. Я отвечал про случай кооперативных потоков.

Casus ★★★★★ ()
Ответ на: комментарий от baverman

С каких пор вычислительная тяжесть приложения определяется числом строк?

Ты можешь себе представить столько кода для генерации вебформ?

Casus ★★★★★ ()
Ответ на: комментарий от baverman

И да, давай профиль выполнения запросов, где показано, что на IO уходит меньше двух/третей времени.

С какой радости я буду что-то давать? ;)

Casus ★★★★★ ()

У нас для одной поделки используется, будем обновлять.

mikhalich ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.