The OpenNET Project / Index page

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



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

"Выпуск Nuitka 0.6.17, компилятора для языка Python "  +/
Сообщение от opennews (??), 14-Ноя-21, 11:15 
Доступен  выпуск проекта Nuitka 0.6.17, развивающего компилятор для трансляции скриптов на языке Python в представление на языке C++, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython (используются штатные средства CPython для управления объектами). Обеспечена полная совместимость с актуальными выпусками Python 2.6, 2.7, 3.3 - 3.9. По сравнению с CPython скомпилированные скрипты демонстрируют в тестах pystone повышение производительности на 335%. Код проекта распространяется под лицензией Apache...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=56152

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

Оглавление

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

1. Сообщение от Аноним (1), 14-Ноя-21, 11:15   +2 +/
Самая удобная штука чтобы поставлять свою питоновскую программу в бинарном виде.  
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #5, #20, #21

2. Сообщение от Аноним (2), 14-Ноя-21, 11:33   +8 +/
Почему бы сразу не написать на с, а не натягивать глаз на глобус?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #7, #11, #28, #32, #69, #134

3. Сообщение от Аноним (3), 14-Ноя-21, 11:35   –6 +/
но зачем, если есть Julia?....
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #35, #75

5. Сообщение от 41 (?), 14-Ноя-21, 11:45   +/
Строго говоря, ещё есть фиксированный двоичные файлы, которые вмещают в себя и интерпретатор, и скрипты. Но скорость выполнения соответствующая будет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #25

6. Сообщение от Аноним (6), 14-Ноя-21, 11:45   –6 +/
Си надо еще осилить.
А тут можно буяк-буяк и вперед пользуйтесь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #8

7. Сообщение от Аноним (8), 14-Ноя-21, 11:46   +/
Потому что... Да!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

8. Сообщение от Аноним (8), 14-Ноя-21, 11:47   +3 +/
А что там осиливать? Язык высокого уровня как никак.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #84

11. Сообщение от Аноним (11), 14-Ноя-21, 11:56   +/
Почему нельзя, многие так и делают. На чем писать каждый сам решает, этим вот захотелось так.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

20. Сообщение от Аноним (49), 14-Ноя-21, 12:52   +6 +/
Если вас не пугает бинарник в полгига конечно. Питоновая программа в бинарном виде… Вы свернули куда-то не туда.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #23, #26, #135

21. Сообщение от Ant (??), 14-Ноя-21, 12:59   +/
Компилируются ли Python-программ с PyQt, matplotlib, pandas и кучей других библиотек?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #27, #36

23. Сообщение от Ant (??), 14-Ноя-21, 13:04   +/
с испльзованием Numpy подтягиваются интеловские библиотеки MKL... и размер становится 800+ Мб, тогда без UPX не обойтись.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #51

25. Сообщение от Аноним (1), 14-Ноя-21, 13:06   –3 +/
Спешу тебя огорчить они декомпилируются обратно в питоновский код вплоть до комментариев в коде. И их успешно можно достать и из py2exe и из cx_freeze и из чего угодно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

26. Сообщение от Аноним (1), 14-Ноя-21, 13:08   –19 +/
Во первых не такие уж они и больше. Во вторых сейчас 2k21 и это никого не пугает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #38, #40

27. Сообщение от Аноним (1), 14-Ноя-21, 13:10   +/
Есть нюансы, например PyQt в абстракции connect надо явно указывать тип данных в сигналах. Еще есть по мелочи.  У меня был PySide и да не сразу как есть но после некоторых приседаний всё заработало.  А в негуевых либах у меня проблем не было.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

28. Сообщение от Аноним (1), 14-Ноя-21, 13:13   –4 +/
Наоборот зачем эти полумеры, лучше сразу писать на Электроне.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

32. Сообщение от BrainFucker (ok), 14-Ноя-21, 13:32   –1 +/
> Почему бы сразу не написать на с,

Если уж и менять питон на что-то, тогда уж лучше на Nim хотя бы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #106, #136

35. Сообщение от Аноним (35), 14-Ноя-21, 13:57   +4 +/
У этого языка противное название.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #47

36. Сообщение от kai3341 (ok), 14-Ноя-21, 13:58   +4 +/
>  Компилируются ли Python-программ с PyQt, matplotlib, pandas и кучей других библиотек?

Если не используешь флаг "follow-imports", то вопросов нет
Иначе необходимо добавить кучу "nofollow-import-to" и исключить сишные либы. Например, greenlet или pandas
А ещё бывает, что в проекте балуются динамическими импортами. Динамический импорт не отработает, если ты не вкомпилишь статически в бандл соответствующую библиотеку флагом "include-module"

Если у тебя проект объёмнее HELLO WORLD, то сборка в один бинарник -- плохая идея, оно просто не соберётся. Рекомендую бить на модули. Для того, чтобы декларативно описать сценарий модульной сборки, я запилил https://pypi.org/project/nuitkabs/ . Если nuitka сопоставима с gcc, то nuitkabs ближе к Makefile. Подрробнее в описании

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #58

37. Сообщение от Урри (ok), 14-Ноя-21, 14:07   –4 +/
> Оптимизация пока применима только к коду, компилируемому при помощи GCC.

Подскажите им, что для clang оптимизация включается так же - дописать "-O3" к командной строке.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #42, #43

38. Сообщение от YetAnotherOnanym (ok), 14-Ноя-21, 14:11   +3 +/
Изящно набросил. Жаль только, без особого эффекта.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

40. Сообщение от Аноним (40), 14-Ноя-21, 14:20   +7 +/
>2k21

Сейчас 2021, а не 200021

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #52

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

42. Сообщение от Аноним (42), 14-Ноя-21, 14:22   +/
-O4 уже есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #87

43. Сообщение от Аноним (49), 14-Ноя-21, 14:31   +/
Пго есть только у гцц, насколько я знаю. В том числе со сбором информации через автопрофилировщик, но прогнать тесты более актуально. Примерно с гцц-9 пго юзать одно удовольствие, в генту можно любой пакет собрать с пго (правда вручную, при обновлении придётся подменять флаги опять). на практике это конечно пара процентов, но для -O3 разница в скорости запуска и исполнения до 60% доходит (или около того). Вообще, на сегодня нет никакого смысла использовать шланг, раньше он был полезен дополнительными проверками и читаемыми сообщениями об ошибках, но с тех пор гцц улучшили. По скорости компиляции гцц тоже лучше (шланг замедлили основательно).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #76

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

47. Сообщение от Аноним (3), 14-Ноя-21, 14:38   +2 +/
У питона с нулткой?.... Или у прекрасных женщин с именем Юлия?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #49

49. Сообщение от Аноним (49), 14-Ноя-21, 14:48   +4 +/
Так сразу видно -- жульё, если конечно не думать одним прекрасным местом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #92

51. Сообщение от n00by (ok), 14-Ноя-21, 15:06   +6 +/
Точно, надо пожать файл, что бы наплодить ещё этих грязных страниц, а то 800+ Мб маловато.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

52. Сообщение от Аноним (1), 14-Ноя-21, 15:20   –4 +/
Ага расскажи это разработчикам вот этой игры https://ru.wikipedia.org/wiki/NBA_2K21
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #55, #64

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

55. Сообщение от Аноним (40), 14-Ноя-21, 15:28   +2 +/
Ты конечно вообще не шаришь. Есть фирма 2К sports, так что 2К это издатель игры.
Пруфы-пруфики: https://ru.wikipedia.org/wiki/NBA_2K_(%D1%81%...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #59

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

58. Сообщение от Аноним (1), 14-Ноя-21, 15:51   –2 +/
На pypi кстати есть такая опция можно написать описание к своему пакету и стороннему человеку будет понятно что пакет делает.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #67

59. Сообщение от Аноним (1), 14-Ноя-21, 15:56   –1 +/
И как же так получается что названия 2K–2K21 совпадают со следующим годом после выхода игры? И что характерно компания так делает с 2000 года когда она еще не называлась 2K. Может потому что еще 21 год назад всем нормальны людям было понятно что 2K=2000?

Давай следующее упражнение для твоего мозга WWE 2K14 https://ru.wikipedia.org/wiki/WWE_2K14 в каком году вышла?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #62, #63

60. Сообщение от n00by (ok), 14-Ноя-21, 16:12   +1 +/
Хороший вопрос.

$ 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ообщить модератору
Родитель: #56 Ответы: #61

61. Сообщение от 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ообщить модератору
Родитель: #60 Ответы: #91, #95

62. Сообщение от Аноним (62), 14-Ноя-21, 16:34   +3 +/
> совпадают со следующим годом после выхода игры

Влияние лунного света на рост телеграфных столбов. 2К тут НАЗВАНИЕ ИЗДАТЕЛЯ.
> Может потому что еще 21 год назад всем нормальны людям было понятно что 2K=2000

Именно! Но потом подросло поколение дегенератов, неспособных понять что 200021 != 2021.

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

63. Сообщение от Аноним (40), 14-Ноя-21, 16:37   +/
>Давай следующее упражнение для твоего мозга WWE 2K14 https://ru.wikipedia.org/wiki/WWE_2K14 в каком году вышла?

В 2013-ом)

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

64. Сообщение от Аноним (62), 14-Ноя-21, 16:37   +/
Нигра с надписью "блейзухи" на футболке в центре обложки.
Безусловно, это прекрасный источник и пример для подражания.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #93

67. Сообщение от kai3341 (ok), 14-Ноя-21, 17:34   +1 +/
> На pypi кстати есть такая опция можно написать описание к своему пакету
> и стороннему человеку будет понятно что пакет делает.

Оно там есть, и намного полнее того, что я написал тут. Спасибо, КЭП

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

69. Сообщение от Аноним (69), 14-Ноя-21, 18:24   +1 +/
Потому что на питоне я напишу, сдам заказчику, получу вознаграждение, заказчик получит прибыль, программа со временем устареет и все будут довольны. А в это время ты все еще будешь писать ее на своем си.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #72, #82

70. Сообщение от all_glory_to_the_hypnotoad (ok), 14-Ноя-21, 18:41   +/
> ... повышение производительности на 335%

Т.е. всего лишь в 3.0-3.5 раз. Питон во столько можно ускорить просто оптимизациями гогнокода. Ради такого мизерного прироста компиляция не нужна.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #74, #80, #112

72. Сообщение от Аноним (1), 14-Ноя-21, 19:25   –6 +/
А если писать на раст то тоже будет продолжать писать, но с чувством безопасности.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

74. Сообщение от Аноним (1), 14-Ноя-21, 19:32   –4 +/
3 это в синтетике, на самом деле меньше. Подсказка: попробуй откомпилить джангу и когда после танцев это получится узнай что можно использовать в два раза меньше виртуалок для той же производительности.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

75. Сообщение от OpenEcho (?), 14-Ноя-21, 20:47   +/
Как скомпилируете в бинарник на ней что нибудь, то обязательно похвалитесь здесь пожалуйста!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #88, #137

76. Сообщение от анонн (ok), 14-Ноя-21, 20:48   –2 +/
> Пго есть только у гцц, насколько я знаю.

https://releases.llvm.org/4.0.0/tools/clang/docs/UsersManual...
https://clang.llvm.org/docs/UsersManual.html#profiling-with-...


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #79

79. Сообщение от Аноним (49), 14-Ноя-21, 21:45   –2 +/
У меня не получилось. В gcc тоже пго было сто лет назад, но до 9 оно было через одно место. Свой софт можно было с пго собрать обложив скриптами, но вот так чтобы любую прогу собрать добавив 2 ключа -- нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

80. Сообщение от Vkni (ok), 14-Ноя-21, 22:09   –2 +/
> Т.е. всего лишь в 3.0-3.5 раз. Питон во столько можно ускорить просто оптимизациями гогнокода. Ради такого мизерного прироста компиляция не нужна.

Компиляция, всё-таки, бесплатна по сравнению с переписыванием говнокода.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #81

81. Сообщение от all_glory_to_the_hypnotoad (ok), 14-Ноя-21, 22:36   +/
Компиляция не бесплата т.к. для неё нужно навернуть инфраструктуру, которой в обычной питонячке нет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #89, #125

82. Сообщение от Анонимemail (82), 14-Ноя-21, 23:42   –7 +/
Я на Delphi напишу в два раза быстрее, красивее и фичастее, чем ты на своем питоне. Но тебе ещё придётся переписывать все с нуля при появлении 3.10
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #94, #104

84. Сообщение от KhabManemail (ok), 15-Ноя-21, 05:56   –1 +/
Ну да. То, что это не ассемблер, делает язык простым, конечно))
Тут кстати парадокс получается. Ассемблер сложный потому, что он простой
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #86

86. Сообщение от n00by (ok), 15-Ноя-21, 07:37   –3 +/
Ассемблер простой, когда понятно как процессор работает. Для Си execution environment формализован, т.е. более-менее понятно, как работает. Парадокс скорее в том, что остальные "очень простые" императивные языки высокого уровня симулирую машину Тьюринга - некую бесконечную хтонь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

87. Сообщение от Аноним (126), 15-Ноя-21, 08:02   +/
В статье речь совсем не про О-шки...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

88. Сообщение от Аноним (3), 15-Ноя-21, 08:36   –1 +/
А в чём, собственно, проблемы? Размер? Для серверных приложений это не проблема.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75 Ответы: #139

89. Сообщение от Аноним (1), 15-Ноя-21, 08:44   –1 +/
Это только если ты операционную системы решил скомпилировать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

91. Сообщение от Аноним (91), 15-Ноя-21, 09:01   +/
Кстати, pypy3 loop.py даёт 1.259338617324829 сек.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #109, #116

92. Сообщение от Аноним (-), 15-Ноя-21, 09:16   –1 +/
Надо иметь русские мозги чтобы слово Julia - Юлия прочитать как Жульё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #126

93. Сообщение от Аноним (-), 15-Ноя-21, 09:21   –1 +/
Тебе надо вступить в партию демократов США - через год будешь уважать негров.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #138

94. Сообщение от Прохожий (??), 15-Ноя-21, 09:41   +/
Не напишешь. Delphi - язык со статической типизацией - больше усилий для написания кода. Компилируемый. Тоже временные затраты - отлаживать дольше, нет возможности быстро запускать отдельные куски кода. По поводу фичастости - это вообще шутка неудачная была? Где Delphi, а где - фичи. Впрочем, может что-то изменилось с тех бородатых времен, когда я смотрел на Delphi.
И ещё я не сказал про гораздо более богатый набор библиотек для Питона. Теперь говорю. Delphi до Питона в этом плане, как от Земли до Луны.
И нет, при появлении Питона 3.10 ничего переписывать не придётся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82 Ответы: #119, #121

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

96. Сообщение от Прохожий (??), 15-Ноя-21, 09:56   +/
pypy
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95

97. Сообщение от n00by (ok), 15-Ноя-21, 10:03   +1 +/
> А где print("Hello Word")?

print("Hello")

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

import time
t0= time.time()

print("Time elapsed: ", t1)

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #99

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

100. Сообщение от Прохожий (??), 15-Ноя-21, 10:07   –1 +/
имеешь -> имел
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #103

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #105

104. Сообщение от Myyx (?), 15-Ноя-21, 10:18   –2 +/
это в собранной то в бинарник программе?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82 Ответы: #120

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103 Ответы: #108, #111

106. Сообщение от Прохожий (??), 15-Ноя-21, 10:23   –1 +/
На Rust же!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #123

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

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

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

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

112. Сообщение от Щ (?), 15-Ноя-21, 10:35   +/
Это вы описали повышение производительности на 235%
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

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

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

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

116. Сообщение от n00by (ok), 15-Ноя-21, 11:02   +1 +/
> Кстати, pypy3 loop.py даёт 1.259338617324829 сек.

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

$ pypy3 loop.py
Hello
Time elapsed:  1.1507835388183594

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #142

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

В #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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #128

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

119. Сообщение от anonymous (??), 15-Ноя-21, 11:32   +4 +/
> со статической типизацией - больше усилий для написания кода.

С чего вы взяли, что усилий больше? (а не наоборот)

> Тоже временные затраты - отлаживать дольше

С сего вы взяли? Наоборот проще отлаживать код со внутренними гарантиями.

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

Unit-тесты уже отменили?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94 Ответы: #130

120. Сообщение от Брат Анон (ok), 15-Ноя-21, 12:10   +2 +/
#яснопонятно. В отладчики мы не умеем и даже не слышали. Впрочем, для этого есть тестирование (см. пункт выше).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104

121. Сообщение от Аноним (121), 15-Ноя-21, 13:28   +/
А почему же тогда с 2.х на 3.х переход был таким, что около 15-20 лет наработок превратилось в тыкву?
Какие такие крутые билблиотеки? Delphi умеет в БД (FireDAC), в графику (включая DirrectX и OpenGL), в сеть (Indy), в dll, в TouchScreen, в Windows/Linux/Android/MaxOS. Время компиляции - секунды. Дебаг вообще смешно. Там рантайм дебаг, хочь пошагово, хочь - по брейк поинту, хоч - Run to Cursor. И в стек посмотреть можно и в регистры CPU и даже в Thread.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94 Ответы: #124, #131

122. Сообщение от xor (??), 15-Ноя-21, 14:04   –1 +/
Вы как-то используете наработки shed skin?
Ответить | Правка | Наверх | Cообщить модератору

123. Сообщение от Аноним (123), 15-Ноя-21, 14:56   –2 +/
Эй, дырка!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106 Ответы: #133

124. Сообщение от Аноним (124), 15-Ноя-21, 15:53   +1 +/
Сейчас бы сравнивать версии 2/3 с 3/3.10
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121

125. Сообщение от Vkni (ok), 15-Ноя-21, 20:03   +/
> Компиляция не бесплата т.к. для неё нужно навернуть инфраструктуру, которой в обычной
> питонячке нет

Она сильно беспланее переписывания говнокода на динамически типизированном языке. Многие питонисты кивают на магию тестов, но сложно представить, что говнокод окружён мегатестами. Кстати, unit-тесты придётся тоже переписывать, т.к. архитектурку придётся подровнять.

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

126. Сообщение от Аноним (126), 15-Ноя-21, 20:33   +/
Вообще-то слово из Европы пришло...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92 Ответы: #129

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

129. Сообщение от Dozer (?), 15-Ноя-21, 22:31   +/
На испанском - Хулия
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #132

130. Сообщение от Прохожий (??), 15-Ноя-21, 22:31   +/
> С чего вы взяли, что усилий больше? (а не наоборот)

Да, необходимо уточнение. В больших проектах статическая типизация рулит. В средне-мелких (для чего, собственно, и предназначен Питон) - с ней больше головной боли, чем пользы.

> С сего вы взяли? Наоборот проще отлаживать код со внутренними гарантиями.

Смотрите выше. Если уж так необходим контроль типов, в Питоне есть аннотация типов. Ну и соответствующий инструментарий для контроля.

> Unit-тесты уже отменили?

Их специально писать надо. Но они не всегда нужны: в мелко-средних проектах - не особо. В крупных - да.

Про количество библиотек для Питона и Дельфи и покрываемых ими юзкейсов вы промолчали почему-то. Почему?

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

131. Сообщение от Прохожий (??), 15-Ноя-21, 22:51   +/
Дельфи не умеет в линейную алгебру, символьную математику, в машинное обучение. Библиотеки для Питона (написанные или на Фортране, или на C) - умеют. Питон в данном случае сильно упрощает жизнь учёным (они не профессиональные программисты, а работу делать надо).

Питон умеет в скриптование - он интерпретируемый язык, хотя можно уже и компилировать. Дельфи - не умеет.

Ещё одна сфера Питона - прототипирование. Наваял скелет, стабилизировал API - и давай на чём-то ещё переписывать, более строгом и быстром. Иной раз существенно экономит время.

Есть также веб. Средне-мелкие сайты - его стихия, хотя есть и конкуренты, конечно. Про сайты на Дельфи ничего не слышал. Может не там смотрел.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121 Ответы: #149

132. Сообщение от Прохожий (??), 15-Ноя-21, 22:56   +1 +/
Страшно подумать, что может вообразить обычный русскоговорящий человек, услышав это имя впервые. Ужас!
Осталось только понять, какое всё это имеет отношение к программированию?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129

133. Сообщение от Прохожий (??), 15-Ноя-21, 23:00   +/
Какие у тебя любопытные ассоциации. Как говаривала одна очень известная личность, кто как обзывается, тот так и называется.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123

134. Сообщение от Прохожий (??), 15-Ноя-21, 23:17   +/
Потому что возиться с компиляторами, отладчиками, линковщиками, указателями, макроснёй и прочей х-тенью полувековой давности мало у кого есть желание среди нормальных современных людей. До некоторых особо одарённых никак не дойдёт, что идеальное программирование - это когда компьютер понимает мысли человека, а не когда человек насилует свой мозг, чтобы разобраться в том, что нужно компьютеру.

Си, кстати, пока никуда не делся. Однако же, надеюсь, в относительно скором будущем его всё-таки похоронят более современные и удобные языки. Процесс уже начался, кстати. Но луддиты упорно стараются не обращать на него внимания, пряча голову в песок, как тот страус, испугавшийся чего-то ранее невиданного. А поезд прогресса тем временем проходит мимо. Ту-ту-у....

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #151

135. Сообщение от Аноним (135), 15-Ноя-21, 23:43   +/
> Если вас не пугает бинарник в полгига конечно

Их не пугает. Им же "поставлять", а не "использовать".

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

136. Сообщение от Аноним (136), 16-Ноя-21, 00:49   +/
Сразу видно, что тебя минуснули нешарящие :) Nim - офигенная штука, кстати.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

137. Сообщение от Admino (ok), 16-Ноя-21, 05:13   +1 +/
Ну это же не Rust, чтобы каждым бинарником хвалиться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

138. Сообщение от Аноним (62), 16-Ноя-21, 09:32   +/
Нет, спасибо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93

139. Сообщение от OpenEcho (?), 16-Ноя-21, 11:16   +/
> А в чём, собственно, проблемы?

В том, что Юлия, не компилится в бинарник своими core средствами.
Если вы знаете как сделать ELF бинарник без плясок с бубном (и без PackageCompiler модуля, который откровенно признаётся, что Julia "just-^BARELY^-ahead-of-time" compiled language, и далеко не всегда работающий как relocatable "app"), то буду признателен если поделитесь

> Размер? Для серверных приложений это не проблема.

Если платить не из своего кармана, то оно конечно, - у амазона много ресурсов


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #143

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #148

143. Сообщение от Аноним (3), 16-Ноя-21, 15:29   +/
PackageCompiler делает срез оперативки по коду/памяти. Собственно, какая вам разница из чего состоит бинарник?

ELF-бинарник сделать можно, но там вопрос с библиотеками. Если есть куча сторонних зависимостей, особенно с питоном, будет куча сторонних динамических библиотек и всего, что им нужно. То есть, собрать всё в один файл, в общем случае, невозможно. Если зависимостей нет, то да, PackageCompiler с шаблоном на С, где будет код загрузки прописан, соберёт единый исполняемый файл.

> Если платить не из своего кармана, то оно конечно, - у амазона много ресурсов

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139 Ответы: #144, #146

144. Сообщение от n00by (ok), 16-Ноя-21, 16:46   +/
> PackageCompiler делает срез оперативки по коду/памяти.

Дамп что ли? Это даже при снятии конверта (защиты) считается халтурой. Ещё со времён Спектрума и MagicButton.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143 Ответы: #145

145. Сообщение от Аноним (3), 16-Ноя-21, 16:53   +/
сейчас даже "программист на питоне" халтурщиком не считается. А уж дамп с оперативки снять - вообще не проблема. Ну естественно, не чистый дамп. Трансляцию адресов необходимо обеспечить, чтобы потом загружаться правильно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144

146. Сообщение от OpenEcho (?), 16-Ноя-21, 18:34   +/
> PackageCompiler делает срез оперативки по коду/памяти.
> Собственно, какая вам разница из чего состоит бинарник?

Есть языки, которые говорят что они "compiled ahead of time", такие каk программы на С, С++, Го...
а есть языки, которые говорят что они компилируемые, но переводят потом стрелки на зависимости что - не могут.

Язык либо может быть комилирующим, всегда, либо нет, без оговорок на "если", поэтому если Вы говорите, "а зачем сабжект когда, есть Юля?", то сделайте выводы сами, - слишком много "если", даже без сторонних зависимостей, Джулия, не есть true компилируемый язык, несмотря на вкусности, которые в нем есть, на нем далеко не всегда получется создать бинарник

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143 Ответы: #147

147. Сообщение от Аноним (3), 16-Ноя-21, 18:51   +/
А при чём здесь стрелки? Если всё пишете на Julia, она соберёт единый исходник. Если делаете вставки на PyCall, то что ей делать с обвязкой анаконды? Или если использована сторонняя библиотека с каким-нибудь куском на C++ и ресурсами в виде кучи файлов. Как их собрать то?.... На любом языке, если автор не собрал их сам.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146 Ответы: #152

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

149. Сообщение от Анонимemail (82), 17-Ноя-21, 21:30   +1 +/
Ну, не ваша беда, что вы плохо знаете делфи. В определённый этап своей жизни нужно было сделать выбор и вы его сделали правильно. Популярность + деньги. Но это не означает, что делфи не умеет в алгебру (math) в скрипты (Pascal script), Web (сам тоже не видел, но в компонентный базе ВСЕ для этого есть), вот ml похоже действительно не конёк паскаля. А вот учёные, отлично с MathLab справлялись, по крайней мере теплофизики (ни строчки кода знать не нужно)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131 Ответы: #150, #156

150. Сообщение от Прохожий (??), 18-Ноя-21, 00:59   +/
> Ну, не ваша беда, что вы плохо знаете делфи.

Полностью согласен. За Дельфи много не платят. Вакансий тоже, вроде, немного. Ну и язык ничем особо не выдающийся, скучный язык. Так что вы правы - совершенно не беда. :)

> Но это не означает, что делфи не умеет в алгебру (math)

Я имел ввиду ЛИНЕЙНУЮ алгебру (векторы, матрицы, SVD, PCA и подобные вещи). А не просто синус, косинус, экспоненту и прочие банальности.

А в символьную математику Дельфи умеет? В Питоне sympy за это отвечает, например.
А во временные ряды (pandas в Питоне)?

> В определённый этап своей жизни нужно было сделать выбор и вы его сделали правильно. Популярность + деньги.

Не угадали. Питон я в принципе не рассматриваю, как способ заработать на жизнь. Это так, для души. Небольшой домашний проект по обработке сигналов в режиме online. Ну и на работе - один из инструментов, причем не основной.

> А вот учёные, отлично с MathLab справлялись, по крайней мере теплофизики (ни строчки кода знать не нужно)

Они-то справлялись, конечно. Но во что это обходилось работодателю? Лицензии сколько-сколько стоили?

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

151. Сообщение от Аноним (151), 18-Ноя-21, 15:01   +/
Сказочный человек
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134 Ответы: #154

152. Сообщение от OpenEcho (?), 18-Ноя-21, 15:21   +/
> А при чём здесь стрелки? Если всё пишете на Julia, она соберёт
> единый исходник. Если делаете вставки на PyCall, то что ей делать
> с обвязкой анаконды?

Я не говорил, что надо скомпилить с зависимостями !
Я говорю только исключительно о Джулии и ее только коде.
Она/он - не есть "compile ahead of time" комилятор.
Джулия использует LLVM JIT compiler.
Вы правда не понимаете разницы между  JIT и "compile ahead of time" комилятотор.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147 Ответы: #153

153. Сообщение от Аноним (3), 18-Ноя-21, 17:19   +/
> Вы правда не понимаете разницы между  JIT и "compile ahead of time" комилятотор.

Вам какая разница, если на выходе PackageCompiler выдаёт бинарник в переносимом формате?... Да, для того, чтобы его получить на JIT-компиляторе, надо предварительно запустить трассировку по всему коду, что PackageCompiler и делает, запрашивая точку входя для исполнения. Но сгенерированный машинный код, который на этот момент находится в оперативке, будет сброшен в исполняемый файл. И файл будет один.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152 Ответы: #155

154. Сообщение от Прохожий (??), 18-Ноя-21, 23:05   +/
Вы впервые в жизни увидели своё отражение в зеркале? Гм, забавно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #151

155. Сообщение от OpenEcho (?), 19-Ноя-21, 03:59   +/
> и делает, запрашивая точку входя
> для исполнения. Но сгенерированный машинный код, который на этот момент находится
> в оперативке, будет сброшен в исполняемый файл. И файл будет один.

Вы когда с сотнями микросервисов столкнетесь (из своего кармана), то увидите разницу между native compiled program VS dump of JIT


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

156. Сообщение от пох. (?), 19-Ноя-21, 12:35   +/
> Web (сам тоже не видел

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

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

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


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

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




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

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