The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз компилятора Python - Nuitka 0.4.2, opennews (??), 31-Мрт-13, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


61. "Релиз компилятора Python - Nuitka 0.4.2"  +3 +/
Сообщение от GoTLiuMemail (ok), 31-Мрт-13, 14:52 
# cat test.py
b = 0
for i in range(100):
        for x in range(100):
                b += i * x
print "Done"
# nuitka --exe test.py
# time ./test.exe
Done

real    0m0.064s
user    0m0.044s
sys     0m0.020s
# time python test.py
Done

real    0m0.028s
user    0m0.020s
sys     0m0.004s

меняем 100 на 10000 и перезапускаем

# time ./test.exe
Done

real    0m14.777s
user    0m14.773s
sys     0m0.000s
# time python test.py
Done

real    0m28.759s
user    0m28.722s
sys     0m0.012s

Отсюда следует, что не всегда оно надо.

Ответить | Правка | Наверх | Cообщить модератору

62. "Релиз компилятора Python - Nuitka 0.4.2"  +/
Сообщение от Мяут (ok), 31-Мрт-13, 14:57 
Оно еще и exe-файлы генерит? :)
Ответить | Правка | Наверх | Cообщить модератору

64. "Релиз компилятора Python - Nuitka 0.4.2"  +1 +/
Сообщение от GoTLiuMemail (ok), 31-Мрт-13, 15:08 
обычный исполняемый бинарник. и да, пример был из под Linux)))
Ответить | Правка | Наверх | Cообщить модератору

112. "Релиз компилятора Python - Nuitka 0.4.2"  +/
Сообщение от Аноним (-), 02-Апр-13, 00:44 
> Оно еще и exe-файлы генерит? :)

Есть возможность кросскомпиляции при указании опции --windows-target.

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

76. "Релиз компилятора Python - Nuitka 0.4.2"  +1 +/
Сообщение от pro100master (ok), 01-Апр-13, 11:34 
оно, может, и не надо, а вот с++, например, надо :)
$time ./test
Done

real    0m0.002s
user    0m0.000s
sys     0m0.000s

$ cat main.cpp
#include <iostream>

int main(int argc, char **argv) {
  
    long x, y, b;
  
    b = 0;
    for( x=0; x<10000; x++)
    {
      for( y=0; y<10000; y++)
      {
        b += x * y;
      }
          
    }
    
    std::cout << "Done" << std::endl;
    return 0;
}


зы всегда прикалывали такие оторванные от жизни тесты)

Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

101. "Релиз компилятора Python - Nuitka 0.4.2"  +/
Сообщение от Аноним (-), 01-Апр-13, 19:32 
http://en.wikipedia.org/wiki/Vectorization_(parallel_computing)
Ответить | Правка | Наверх | Cообщить модератору

107. "Релиз компилятора Python - Nuitka 0.4.2"  +1 +/
Сообщение от pro100master (ok), 01-Апр-13, 21:53 
Аноним намекает, что как бы есть алгебраическое решение. Зачетно, вики осилил. На самом деле, интеловский компилятор, как и gcc, если это вынести за пределы main(), заменит на константу или число (внезапно), без всякой алгебры и прочего шаманства с циклами. Я же как бы намекнул на оторванный от реальности тест :)
Ответить | Правка | Наверх | Cообщить модератору

121. "Релиз компилятора Python - Nuitka 0.4.2"  +/
Сообщение от GoTLiuMemail (ok), 02-Апр-13, 05:17 
>[оверквотинг удален]
>       for( y=0; y<10000; y++)
>       {
>         b += x *
> y;
>       }
>     }
>     std::cout << "Done" << std::endl;
>     return 0;
> }
> зы всегда прикалывали такие оторванные от жизни тесты)

Лучше сразу на C. А тесты и впрямь прикольные, но результат на лицо:)
#include<stdio.h>

int main() {
        int x, y, b = 0;
        for (x = 0; x < 10000; x++) {
                for (y = 0; y < 10000; y++) {
                        b += x * y;
                }
        }
        printf("Done");
        return 0;
}

Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

126. "Релиз компилятора Python - Nuitka 0.4.2"  +/
Сообщение от Аноним (-), 02-Апр-13, 05:25 
> Лучше сразу на C. А тесты и впрямь прикольные, но результат на лицо:)

Да, си сделал питона раз так в эн. Хотя нет, эн мало, лучше эм.

Ответить | Правка | Наверх | Cообщить модератору

149. "Релиз компилятора Python - Nuitka 0.4.2"  +/
Сообщение от Аноним (-), 04-Апр-13, 01:22 
> # cat test.py
> b = 0
> for i in range(100):
>         for x in range(100):
>            
>     b += i * x
> print "Done"

Даже на таком примере видно, что человек от python далек.

Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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