The OpenNET Project / Index page

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



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

Оглавление

Выпуск Nuitka 0.6.17, компилятора для языка Python , opennews (??), 14-Ноя-21, (0) [смотреть все]

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


41. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  –1 +/
Сообщение от Аноним (42), 14-Ноя-21, 14:21 
Отлично, ещё бы в дебчике питонятину откомпилять.
Ответить | Правка | Наверх | Cообщить модератору

45. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +3 +/
Сообщение от Аноним (49), 14-Ноя-21, 14:35 
Это ничего не даст. Компиляция сабжем только незначительно ускоряет запуск и больше ничего. Нивелируется недостатками в виде жжора памяти и дополнительным временем на чтение с диска.
Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от kusb (?), 14-Ноя-21, 15:30 
Странно, не скомпилированный код же по идее должен тратить такты на обдумывание интерпретатором каждой команды?
Ответить | Правка | Наверх | Cообщить модератору

60. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +1 +/
Сообщение от n00by (ok), 14-Ноя-21, 16:12 
Хороший вопрос.

$ cat loop.py
#!/usr/bin/python3.9

import time
t0= time.time()
print("Hello")
j = 0
for k in range(0,10):
    for i in range(0,50000000):
        j = i - j
    j = j + k
t1 = time.time() - t0
print("Time elapsed: ", t1)

$ ./loop.py
Hello
Time elapsed:  88.54895782470703

$ nuitka3 --run loop.py
[...]
Hello
Time elapsed:  49.21110701560974


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

61. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от n00by (ok), 14-Ноя-21, 16:20 
Ещё немножко этих интерпретаций

$ cat loop.ref
#!/bin/refal

Go = <цикл-1 0 0>;

цикл-1 {
  10 ?k = ?k;
  ?k ?j = <цикл-1 <?k + 1> <<цикл-2 0 0> + <?j + ?k>>>;
}

цикл-2 {
  50000000 ?j = ?j;
  ?i       ?j = <цикл-2 <?i + 1> <?i - ?j>>;
}

$ time ./loop.ref

real    0m51,589s
user    0m51,579s
sys    0m0,007s


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

91. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от Аноним (91), 15-Ноя-21, 09:01 
Кстати, pypy3 loop.py даёт 1.259338617324829 сек.
Ответить | Правка | Наверх | Cообщить модератору

109. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от n00by (ok), 15-Ноя-21, 10:28 
Спасибо. Сейчас протестирую. Компилируется это pypy3 дольше чем MLton, сразу видно, крутая штука.
Ответить | Правка | Наверх | Cообщить модератору

116. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +1 +/
Сообщение от n00by (ok), 15-Ноя-21, 11:02 
> Кстати, pypy3 loop.py даёт 1.259338617324829 сек.

На той же машине, где python3.9 давал 88.54895782470703
а nuitka3 -- 49.21110701560974

$ pypy3 loop.py
Hello
Time elapsed:  1.1507835388183594

Теперь другой вопрос: а зачем nuitka3, когда есть pypy3?

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

142. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от abababab (?), 16-Ноя-21, 13:50 
> Теперь другой вопрос: а зачем nuitka3, когда есть pypy3?

Потому что, c помощью pypy нельзя сделать готовый бинарник, независимый от интерпретатора.

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

148. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от n00by (ok), 17-Ноя-21, 05:44 
А какую задачу это решает? Скрыть исходный текст скрипта от посторонних глаз? Или Python не позволяет складировать всё нужное в одну папочку и оттуда запускать?
Ответить | Правка | Наверх | Cообщить модератору

95. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от Прохожий (??), 15-Ноя-21, 09:53 
А где print("Hello Word")? Где измерение времени средствами языка? Про pypi тебе уже написали.
Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

96. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от Прохожий (??), 15-Ноя-21, 09:56 
pypy
Ответить | Правка | Наверх | Cообщить модератору

97. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +1 +/
Сообщение от n00by (ok), 15-Ноя-21, 10:03 
> А где print("Hello Word")?

print("Hello")

> Где измерение времени средствами языка?

import time
t0= time.time()

print("Time elapsed: ", t1)

> Про pypi тебе
> уже написали.

Вы и вопрос не видели, на который я отвечал?

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

99. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  –1 +/
Сообщение от Прохожий (??), 15-Ноя-21, 10:06 
Я твой скрипт на рефале имеешь ввиду. Мог бы и догадаться.
Ответить | Правка | Наверх | Cообщить модератору

100. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  –1 +/
Сообщение от Прохожий (??), 15-Ноя-21, 10:07 
имеешь -> имел
Ответить | Правка | Наверх | Cообщить модератору

101. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от n00by (ok), 15-Ноя-21, 10:12 
> Я твой скрипт на рефале имеешь ввиду.

А зачем? Включающий время трансляции результат вполне устраивает.

>  Мог бы и догадаться.

Догадаться, зачем сообщение про Рефал было написано в ответ на Питон?

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

103. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  –1 +/
Сообщение от Прохожий (??), 15-Ноя-21, 10:16 
1. Затем, что затраты на вывод - они не бесплатные. На измерение времени - тоже.

2. Потому что на смартфоне отвечаю, промахнулся немного.

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

105. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от n00by (ok), 15-Ноя-21, 10:18 
А затраты на чтение исходника и его семантический разбор?

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

108. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  –1 +/
Сообщение от Прохожий (??), 15-Ноя-21, 10:27 
Что про pypy скажешь? Ты как-то в упор не замечаешь его почему-то. Почему?
Ответить | Правка | Наверх | Cообщить модератору

110. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от n00by (ok), 15-Ноя-21, 10:29 
Потому что pypy собирается в один поток и я всё еще жду. Впрочем, оно не имеет отношения к вопросу, на который я отвечал.
Ответить | Правка | Наверх | Cообщить модератору

113. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  –1 +/
Сообщение от Прохожий (??), 15-Ноя-21, 10:37 
Вопрос был об эффективности компилятора. Ты его сравнил с Рафал. Рафал победил с большим выигрышем. Но почему? То ли цикл просто проигнорировал, например, потому, что переменная больше никак не используется, то ли компилятор пока сырой.
Дождёмся твоих результатов с pypy.
А есть ещё numba, кстати.
Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

114. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от Прохожий (??), 15-Ноя-21, 10:39 
Рафал ->  рефал
Ответить | Правка | К родителю #113 | Наверх | Cообщить модератору

117. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +1 +/
Сообщение от n00by (ok), 15-Ноя-21, 11:19 
> Вопрос был об эффективности компилятора.

В #60 я сравнил python3.9 и nuitka3. Результат 88.5 и 49.2. Что странно для компилятора. В первом приближении ожидается на порядок лучше.

> Ты его сравнил с Рафал. Рафал победил
> с большим выигрышем.

51,589s. Выигрыш только у python3.9. Результат примерно как у nuitka3.

> Но почему? То ли цикл просто проигнорировал, например,
> потому, что переменная больше никак не используется

Тест Питона я не писал, а на днях увидел его сравнение с паскалем http://вече.программирование-по-русски.рф/viewtopic.php?f=9&t=470
ну и сравнил заодно. На Рефале вообще так не пишут, мне пришлось специально сохранить семантику циклов. Результат, естественно, проверял -- его возвращает функция цикл-1 в первом предложении (просто здесь эту информацию посчитал лишней). Если точку входа переименовать в go (а не Go) то он выводится:

$ time ./loop.ref
Поле зрения:
250000045

real    0m50,977s

$ ./loop.py
Hello
Time elapsed:  86.47002148628235
j =  250000045

> то ли компилятор пока сырой.

Это мягко сказано. Аноним (49) сообщил о медленной скорости как обыденности.

> Дождёмся твоих результатов с pypy.
> А есть ещё numba, кстати.

$ pypy3 loop.py
Hello
Time elapsed:  1.130962610244751
j =  250000045

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

128. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от Прохожий (??), 15-Ноя-21, 22:23 
Спасибо за ответ. Значит, не судьба этому компилятору пока быть быстрым. Продолжаем пользоваться pypy. Вполне возможно, этот компилятор пишут, чтобы руку набить, не преследуя практические цели.
Ответить | Правка | К родителю #117 | Наверх | Cообщить модератору

140. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от n00by (ok), 16-Ноя-21, 12:48 
Думается, авторам следовало бы обозначить, что проект исследовательский или что-то в этом роде. Когда публиковал тесты, ожидал, что меня начнут тыкать носом в ключи, которые надо было передать компилятору, что бы результат работал быстро.
Ответить | Правка | К родителю #128 | Наверх | Cообщить модератору

141. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от DyadyushkaAU (ok), 16-Ноя-21, 13:34 
Сомневаюсь (хотя мой опыт ограничен), что наличие какого-либо ключа способно увеличить скорость работы откомпилированного кода в десятки раз. Часто речь идёт о десятке-другом процентов, не более.
Ответить | Правка | К родителю #140 | Наверх | Cообщить модератору

115. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  –1 +/
Сообщение от Прохожий (??), 15-Ноя-21, 10:43 
Не имеет. Но уже просто интересно.
Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

111. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от Прохожий (??), 15-Ноя-21, 10:30 
Предположим, что они одинаковы. Или есть сомнения?
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

118. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от n00by (ok), 15-Ноя-21, 11:28 
Они далеко не одинаковы (1 вызов write() против open() + 6-ти mmap(), одна из которых приводит к чтению с накопителя, не считая собственно разбора), но на фоне 50 сек исполнения - меньше погрешности.
Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от Аноним (1), 14-Ноя-21, 15:23 
Да только откомпилить для каждого дистрибутива, версии подверсии, под каждое ядро, UEK. И не факт что оно будет один в один работать так же как задумано на обычном питоне.  
Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

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

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




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

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