The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск PyPy 5.0, реализации Python, написанной на языке Pyth..."
Отправлено Аноним, 11-Мрт-16 18:02 
С PyPy действительно на одном уровне с C:
time pypy ./test.py
0.782010319461

real    0m3.475s
user    0m3.464s
sys    0m0.011s

но вот только объяснение этому такое:
https://ru.wikipedia.org/wiki/PyPy
>PyPy состоит из стандартного интерпретатора и транслятора. Интерпретатор полностью реализует язык Python. Сам интерпретатор написан на ограниченном подмножестве этого же языка, называемом RPython (Restricted Python). В отличие от стандартного Python, RPython является статически типизированным для более эффективной компиляции
>C — трансляция кода RPython в C и запуск как родной программы; это стандартный режим работы;

Кроме того если в приведённый выше код на C добавить одну строку из openmp:


#include <stdio.h>
#include <math.h>

void main()
{
    int i;
    double sum = 0.0;
    #pragma omp parallel for reduction(+:sum)
    for( i = 0; i < 100000000; ++i )
        sum += sin(i);
    printf("%.12f\n", sum);
}


То результаты C кардинально меняются:
gcc test.c -fopenmp -lm
time ./a.out
0.782010319461

real    0m0.545s
user    0m4.207s
sys    0m0.000s


Добавим нолик к диапазону:
Python2: отказывается исполнять такой код
time python test.py
Traceback (most recent call last):
  File "test.py", line 9, in <module>
    print(test())
  File "test.py", line 5, in test
    for i in range(1000000000):
MemoryError


Python3:
$ time python3 test.py
-0.12454896270324128

real    2m37.319s
user    2m37.137s
sys    0m0.015s


PyPy:
time pypy test.py
-0.124548962703

real    0m40.081s
user    0m40.035s
sys    0m0.008s


код на C без openmp:
time ./a.out
-0.124548962703

real    0m38.697s
user    0m38.659s
sys    0m0.000s


код на C c openmp:
gcc test.c -fopenmp -lm
time ./a.out
-0.124548962703

real    0m6.378s
user    0m48.648s
sys    0m0.000s

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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