LINUX.ORG.RU

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

SV0L0CH
()

>Такие вот дела.

Автор кода криворук? да, такие дела.

devl547 ★★★★★
()

>PyPy медленнее CPython

На каком-то малопонятном враппере для сишного кода, где намешаны итераторы.

Хотя да, это не есть хорошо.

anonymous
()

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

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

> А где там «сотни раз»?

Да, там в 80 раз. Но, думаю, что возможно написать такую программу, что разница будет в сотни :)

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

>Да-да, крокодил более зеленый, чем длинный.

А еще он сцуко БЫСТРЫЙ

tailgunner ★★★★★
()

Я так понял, у PyPy реализация регулярок - гумно. Потому он и слил. А как реализация педона он хрош.

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

> PyPy хреново транслирует сам себя в более низкоуровневый код?

Нет.

В чём неожиданность-то?

Что тест нарвался на какую-то серьезную неэффективность рантайма.

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

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

sanuda
() автор топика
Ответ на: комментарий от erfea

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

ПайПай? Похоже что да, только у тебя.

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

>> Си медленнее PyPy

Электровоз медленнее состава?

JIT-компилятор PyPy лучше AOT-компилятора gcc.

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

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

I have this iterative JSON parser — ijson — which is a ctypes-based wrapper around C library yajl by Lloyd Hilaiel. I don't know of any pure Python iterative JSON parsers so I decided to implement one and see how it compares to yajl by speed under PyPy.

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

Правильный вывод: реализация парсера JSON на питоне, выполненная автором тестов, при запуске на PyPy показывает чуть лучший уровень производительности, чем обращения через враппер к библиотеке yajl.

Ошибочный вывод: Си медленнее PyPy.

Пояснять, надеюсь, не нужно.

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

Кстати, как там в комментах было замечено, оба варианта оптимизации — мусор, т.к. в идеальном случае оптимизируются до int main() {return 0;}.

В случае с Си у компилятора недостаточно информации для такой оптимизации, а вот у PyPy, по идее, достаточно.

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

> Правильный вывод: реализация парсера JSON на питоне, выполненная автором тестов, при запуске на PyPy показывает чуть лучший уровень производительности, чем обращения через враппер к библиотеке yajl.

Не юли:

geekless> По обеим ссылкам треда вижу только сравнение разных реализаций питона.

А сравнивался Python + Си с чистым Python.

Пояснять, надеюсь, не нужно.

Ну, неплохо бы замерить время, проведенное именно в Си-коде, но, конечно, мы не станем от тебя этого требовать %)

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

> Не юли:

geekless> По обеим ссылкам треда вижу только сравнение разных реализаций питона.

А сравнивался Python + Си с чистым Python.

Врешь. Сравнивается 2 парсера — и оба для питона. Где там тестовый код на си? В упор не вижу.

неплохо бы замерить время, проведенное именно в Си-коде

Неплохо бы доказать полную идентичность используемых в парсерах алгоритмов. Но, конечно, мы не станем от тебя этого требовать %)

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

>> А сравнивался Python + Си с чистым Python.

Врешь.

Утипути. Вот:

Original yajl wrapper   0.48 sec

CPython   0.89 sec

PyPy   0.47 sec

Что неясно в словах «Original yajl wrapper»?

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

Они неидентичны, насколько я могу судить. Лучше объем кода сравни - сколько пришлось написать кода на Си, чтобы он работал со скоростью Питона.

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

Сливает? Слишком громко сказано.

python -m timeit 'reduce(lambda x,y:x*y, xrange(1,10000))'
10 loops, best of 3: 409 msec per loop

pypy -m timeit 'reduce(lambda x,y:x*y, xrange(1,10000))'
10 loops, best of 3: 549 msec per loop
baverman ★★★
()
Ответ на: комментарий от CFA

И если не выходить на бигнамы:

python -m timeit 'def fac(n):' '    result = 1' '    for i in xrange(1, n+1):' '        result *= i' '    return result' 'fac(10)'
100000 loops, best of 3: 9.14 usec per loop

pypy -m timeit 'def fac(n):' '    result = 1' '    for i in xrange(1, n+1):' '        result *= i' '    return result' 'fac(10)'
1000000 loops, best of 3: 0.487 usec per loop

Так-то.

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

Примерно в 2 раза.

baverman: Ну факт, что на бигнамах pypy сливает капитально. Я же не утверждаю, что он медленнее на всех операциях.

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