LINUX.ORG.RU

PyPy 1.7

 , ,


0

1

Вышла очередная версия 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 ()
Последнее исправление: adriano32 (всего исправлений: 1)

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

Я отвечал про случай кооперативных потоков.

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

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

То есть согласен, что большинство веб приложений, суть тупые мордочки, большую часть времени проводящие в ожидание ответа от базы данных или другого IO? ЧТД.

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

разбора полей формы до всяких Base64/URL-encoding, включая типизированную генерацию HTML из кода (т.е. не print «<BR>», а html->br()

у-у-у, 6#%-@-@, красота-то какая!

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

гораздо продуктивней потратить время на изучения с++11.

Гречка не нужна! Рыбий жир - куда как нажористей!

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

> Это аксиома, а аксиома это утверждение принимаемое без доказательства.

yanka

Тогда уж «абсолют»: вспомнились заметки одного бок^W^Wдоцента Беклемишева.

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

s/доцента/профессора/

Избранное:

«Если из высказывания P следует Q, и Q приятно, то P истинно.»

«Ну, конечно, я права! Тут и доказывать нечего. Но уж если ему нужны какие-то доказательства, то какая разница, что я ему скажу --- лишь бы он, наконец, отстал!»

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

> Не так давно пробовал fuzzy-search (нечеткий поиск, разница строк: levenstein) сравнить. Использовались списки (точнее, насколько понимаю, аdjustabje arrays). На порядок медленней.

Запости тесткейс на pypy.prg. Или хоть здесь покажи.

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

> Да легко. В дочернем классе делал self.func_old = self.func_new или типа того чтобы подменить коллбэк (долбаный aio, тогда ещё не придумали gevent). Этого хватило. Да, говнокод(давно дело было), тока попробуй определи где сдесь цикл создаётся.

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

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

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

А я работодателя ищу :-)

Кстати в Москве есть для питонеров работа, а вот у нас ПЭХАПЭ один и Один СЭ

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

Есть такие замечательные вещи как замыкания и карринг.

Не знаю что ты намутил с замыканиями и каррингом, но есть gevent который полюбому удобнее.

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

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

Никак. Google Apps не облако и Пайтон на нем не работает.

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

Согласно импликации P может иметь значение ложь, а Q -истина. В целом из P следует Q будет истиной ))) Учим мат логику анонимус!

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

> Кстати в Москве есть для питонеров работа, а вот у нас ПЭХАПЭ один и Один СЭ

А вы где?

А меня вот С++ на python, pl gp sql и еще на много что переучили

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

> В целом из P следует Q будет истиной ))) Учим мат логику анонимус!

Я хоть и не анонимус, но напомню, что речь шла об истинности P, а не истинности Q.

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

Когда это шла речь? Когда я писала об аксиоме? Аксиома это высказывание , которое в данной аксиоматической базе всегда истинно. Он почему то, сразу от аксиомы перешел к логике высказывании и привел в пример анекдот, некорректно, юноша))

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

> Когда это шла речь?

Временная метка на сообщении - 23.11.2011 10:13:22

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

> Не знаю что ты намутил с замыканиями и каррингом, но есть gevent который полюбому удобнее.

Да по любому удобнее. Особенно тем, что приходится сначала писать «удобные» циклические ссылки, а потом писать «удобные» костыльные освобождатели памяти. Хотя кажется дело тут не в gevent'e

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

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

А я печатаю 2000 слов в минуту. (такая фигня получается).

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

А я ее как люблю.... С 10 join'ами

Мерзость все эти ваши данамические и аже с ними

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

Особенно тем, что приходится сначала писать «удобные» циклические ссылки, а потом писать «удобные» костыльные освобождатели памяти.

Не знаешь - не говори. «Давайте спорить о вкусе устриц с теми, кто их ел» (c)

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

Хы-хы. Мил человек, создать себе проблемы с потоками на C++ не просто просто, а просто-таки очень просто :) Нужно ли перечислять примеры? :)

Насчёт производительности... Случалось мне писать на пейтоне сервера, которые уделывали в разы сходные по функционалу сервера, написанные на С++ (и тоже, кстати сказать, с моим участием). В производительности слишком многое зависит от местности, на которой это всё происходит.

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

>написанные на С++ (и тоже, кстати сказать, с моим участием

Тут нет ничего стыдного, я по многу раз переписывал программы, когда изучал С++. А насчет в разы - это говорит о том, что в дизайне были большие просчеты.

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

> Не знаешь - не говори. «Давайте спорить о вкусе устриц с теми, кто их ел» (c)

«Я в жизни не снес ни одного яйца, но это не мешает мне спорить о вкусе яичницы» (С)

А сужу я только по твоим высказываниям выше. Ничего больше.

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

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

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

Ну, на тему того что я хреновый программер спорить не буду. Лучше с namezys поспорь, у них вон в продакшене питон течёт.

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

> у них вон в продакшене питон течёт

И? У вас продакшене нет ничего на Си или плюсах, что течёт? У вас нет компьютеров?

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

> aксиома это высказывание , которое в _данной аксиоматической базе_ всегда истинно. Он почему то, сразу от аксиомы перешел к логике высказывании и привел в пример анекдот, некорректно, юноша))

Вот из-за наличия некой аксиоматической базы и привел, и не анекдот, а вполне себе научную заметку о женской логике. Как и автор, я отнюдь не подразумеваю негативный акцент на «женской»:

Можно пpедвидеть yпpек в том, что наше изложение само основывается на женской логике. Этот yпpек следyет пpизнать совеpшенно неyместным: тpебование излагать аpистотелевскyю логикy пpи помощи женской звyчало бы не лyчше.

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

http://warrax.net/49/women_logic.html (вдруг кто не видел).

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

У вас нет компьютеров?

Вы на меня нападаете с разных сторон и под разными углами :). Речь о том на сколько сложно или просто написать нетекущую программу на питоне, а не вопросы течки в целом.

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

> Вы работаете на кладбище?

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

// другой анонимус

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

почему на кладбище? Программа с утечками памяти или иными дефектами, просто до меня не дойдет, еще этапе на приемо-сдаточных испытаний она будет отправлена на доработку, с соотвествующими санкциями по отношению к разработчикам.

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

> Речь о том на сколько сложно или просто написать нетекущую программу на питоне, а не вопросы течки в целом.

А. Ну так всё просто, сейчас написание «текущей» программы на питоне требует определённой квалификации. Видите же, три страницы треда посвящены отстойности gc в питоне, но ни одного примера. Анонимусу нужно время, чтобы разобраться как там работает gc, так с ходу не получается.

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

>сейчас написание «текущей» программы на питоне требует определённой квалификации.

ну так все-таки можно, а значит менеджер памяти в питоне дефектный.

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

>> сейчас написание «текущей» программы на питоне требует определённой квалификации.

ну так все-таки можно, а значит менеджер памяти в питоне дефектный.

Написать «текущую» программу можно на любом языке - хоть на Яве, хоть на Си#.

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

Ох, как вы все накинулись на мой маленький вброс моё невинное замечание.

Да, я в курсе, что в некоторых местах программы не просто тестируются на соответствие заявленному поведению, а _доказываются_. Более того, рядом со мной работают люди, чьей академической специальностью как раз и является, в том числе, разработка методов подобных доказательств. Но, может быть, благодаря этому я наслышан о границах применения подобных методик и о (математической) сложности этих доказательств.

Там же где приёмка осуществляется не доказательством, а тестированием, возникает несколько вопросов:

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

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

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

сейчас написание «текущей» программы на питоне требует определённой квалификации

Т.е. раньше квалификации не требовалось?

ни одного примера

тебе нужен пример циклической ссылки?

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

> просто до меня не дойдет, еще этапе на приемо-сдаточных испытаний она будет отправлена на доработку, с соотвествующими санкциями по отношению к разработчикам.

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

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

> Ох, как вы все накинулись на мой маленький вброс моё невинное замечание.

Вы так говорите будто бы оно не было высказано в довольно категоричной форме. А область применения, разумеется, ограничена. Но субъективно первое перевесило).

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

> Запости тесткейс на pypy.prg. Или хоть здесь покажи.

Еще бы найти, у меня дурацкая привычка оставлять то, что не очень нужно на tmpfs. Кто-то такое мерял (видимо с хаскелем сравнивал): https://github.com/ahupp/bktree/blob/825b7cdedb0a68f9f3bdf4693acb0c4be6cd8209... (там алгоритм взят с википедии).

Хм, уже не воспроизводится, странно... вроде не перепутал. pypy сейчас в 2 раза быстрее (сравнивал время создания bk-дерева из /usr/share/dict/cracklib-small).

// Профилирование не пробовал (и не особенно умею).

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

Емнип, вроде даже этот вариант сравнивал (и особо ничего в нем не портил).

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

Странность лишь том, что контраст заставил вспоминать: «не перепутал ли я чего».

Это же хорошо, что pypy быстрее стал). В данном случае польза от подкрепления аргумента ~0, по-крайнем мере в сознательно плане.

anonymous
()

> PyPy implements the Python language version 2.7.1

Круто! В предыдущем 2.5.* был, кажется, из-за чего приходилось код переписывать. Теперь всё как надо.

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

тебе нужен пример циклической ссылки?

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

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

ну захоронение в землю - это одно из немногих по-настоящему протестированных решений. Поэтому и упомянул. Но получилось неплохо, да ;)

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

>Написать «текущую» программу можно на любом языке - хоть на Яве, хоть на Си#.

Вопрос в том, что именно вызывает утечку памяти. Ошибка в программе, или некорректная работа менеджера памяти. У меня корректные программы на с++ не текут, думаю, что то же самое можно сказать про яву. В данном случае, корректная программа на питоне течет, из-за того, что gc неправильно работает с циклическими ссылками, у перла, насколько я помню была та же самая проблема, поскольку использовались алгоритмы подсчета ссылок на объект.

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

замкнутые циклические ссылки тоже могут быть отсеяны не бог весть какими сложными способами.

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

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