The OpenNET Project / Index page

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

Выпуск Nuitka 0.6.17, компилятора для языка Python

14.11.2021 11:05

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

В новой версии добавлена экспериментальная поддержка оптимизации на основе результатов профилирования кода (PGO - Profile-guided optimization), позволяющей учитывать особенности, определяемые во время выполнения программы. Оптимизация пока применима только к коду, компилируемому при помощи GCC. Для плагинов предоставлена возможность запроса ресурсов во время компиляции (pkg_resources.require). Значительно расширены возможности плагина anti-bloat, который теперь может применяться для уменьшения числа пакетов при использовании библиотек numpy, scipy, skimage, pywt и matplotlib, в том числе через исключение лишних функций и подстановку необходимого кода функций на этапе парсинга. Проведена оптимизация кода, связанного с многопоточностью, созданием классов, проверкой атрибутов и вызовом методов. Ускорено выполнение операций с типами bytes, str и list.

  1. Главная ссылка к новости (https://nuitka.net/posts/nuitk...)
  2. OpenNews: Выпуск Nuitka 0.6.0, компилятора для языка Python
  3. OpenNews: Выпуск языка программирования Python 3.10
  4. OpenNews: Выпуск Brython 3.10, реализации языка Python для web-браузеров
  5. OpenNews: Выпуск Cython 0.27, компилятора для языка Python
  6. OpenNews: Проект Pyston, предлагающий Python с JIT-компилятором, вернулся к открытой модели разработки
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56152-nuitka
Ключевые слова: nuitka, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (117) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:15, 14/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Самая удобная штука чтобы поставлять свою питоновскую программу в бинарном виде.  
     
     
  • 2.3, Аноним (3), 11:35, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –6 +/
    но зачем, если есть Julia?....
     
     
  • 3.35, Аноним (35), 13:57, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    У этого языка противное название.
     
     
  • 4.47, Аноним (3), 14:38, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У питона с нулткой?.... Или у прекрасных женщин с именем Юлия?
     
     
  • 5.49, Аноним (49), 14:48, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Так сразу видно -- жульё, если конечно не думать одним прекрасным местом.
     
     
  • 6.92, Аноним (-), 09:16, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Надо иметь русские мозги чтобы слово Julia - Юлия прочитать как Жульё.
     
     
  • 7.126, Аноним (126), 20:33, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то слово из Европы пришло...
     
     
  • 8.129, Dozer (?), 22:31, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На испанском - Хулия ... текст свёрнут, показать
     
     
  • 9.132, Прохожий (??), 22:56, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Страшно подумать, что может вообразить обычный русскоговорящий человек, услышав ... текст свёрнут, показать
     
  • 3.75, OpenEcho (?), 20:47, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Как скомпилируете в бинарник на ней что нибудь, то обязательно похвалитесь здесь пожалуйста!
     
     
  • 4.88, Аноним (3), 08:36, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А в чём, собственно, проблемы? Размер? Для серверных приложений это не проблема.
     
     
  • 5.139, OpenEcho (?), 11:16, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > А в чём, собственно, проблемы?

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

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

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


     
     
  • 6.143, Аноним (3), 15:29, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    PackageCompiler делает срез оперативки по коду памяти Собственно, какая вам раз... большой текст свёрнут, показать
     
     
  • 7.144, n00by (ok), 16:46, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > PackageCompiler делает срез оперативки по коду/памяти.

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

     
     
  • 8.145, Аноним (3), 16:53, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    сейчас даже программист на питоне халтурщиком не считается А уж дамп с операт... текст свёрнут, показать
     
  • 7.146, OpenEcho (?), 18:34, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > PackageCompiler делает срез оперативки по коду/памяти.
    > Собственно, какая вам разница из чего состоит бинарник?

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

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

     
     
  • 8.147, Аноним (3), 18:51, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А при чём здесь стрелки Если всё пишете на Julia, она соберёт единый исходник ... текст свёрнут, показать
     
     
  • 9.152, OpenEcho (?), 15:21, 18/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я не говорил, что надо скомпилить с зависимостями Я говорю только исключительн... текст свёрнут, показать
     
     
  • 10.153, Аноним (3), 17:19, 18/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вам какая разница, если на выходе PackageCompiler выдаёт бинарник в переносимом ... текст свёрнут, показать
     
     
  • 11.155, OpenEcho (?), 03:59, 19/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вы когда с сотнями микросервисов столкнетесь из своего кармана , то увидите раз... текст свёрнут, показать
     
  • 4.137, Admino (ok), 05:13, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну это же не Rust, чтобы каждым бинарником хвалиться.
     
  • 2.5, 41 (?), 11:45, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Строго говоря, ещё есть фиксированный двоичные файлы, которые вмещают в себя и интерпретатор, и скрипты. Но скорость выполнения соответствующая будет.
     
     
  • 3.25, Аноним (1), 13:06, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Спешу тебя огорчить они декомпилируются обратно в питоновский код вплоть до комментариев в коде. И их успешно можно достать и из py2exe и из cx_freeze и из чего угодно.
     
  • 2.20, Аноним (49), 12:52, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Если вас не пугает бинарник в полгига конечно. Питоновая программа в бинарном виде… Вы свернули куда-то не туда.
     
     
  • 3.23, Ant (??), 13:04, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    с испльзованием Numpy подтягиваются интеловские библиотеки MKL... и размер становится 800+ Мб, тогда без UPX не обойтись.
     
     
  • 4.51, n00by (ok), 15:06, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Точно, надо пожать файл, что бы наплодить ещё этих грязных страниц, а то 800+ Мб маловато.
     
  • 3.26, Аноним (1), 13:08, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –19 +/
    Во первых не такие уж они и больше. Во вторых сейчас 2k21 и это никого не пугает.
     
     
  • 4.38, YetAnotherOnanym (ok), 14:11, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Изящно набросил. Жаль только, без особого эффекта.
     
  • 4.40, Аноним (40), 14:20, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    >2k21

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

     
     
  • 5.52, Аноним (1), 15:20, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Ага расскажи это разработчикам вот этой игры https://ru.wikipedia.org/wiki/NBA_2K21
     
     
  • 6.55, Аноним (40), 15:28, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты конечно вообще не шаришь. Есть фирма 2К sports, так что 2К это издатель игры.
    Пруфы-пруфики: https://ru.wikipedia.org/wiki/NBA_2K_(%D1%81%D0%B5%D1
     
     
  • 7.59, Аноним (1), 15:56, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И как же так получается что названия 2K–2K21 совпадают со следующим годом после выхода игры? И что характерно компания так делает с 2000 года когда она еще не называлась 2K. Может потому что еще 21 год назад всем нормальны людям было понятно что 2K=2000?

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

     
     
  • 8.62, Аноним (62), 16:34, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Влияние лунного света на рост телеграфных столбов 2К тут НАЗВАНИЕ ИЗДАТЕЛЯ Име... текст свёрнут, показать
     
  • 8.63, Аноним (40), 16:37, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В 2013-ом ... текст свёрнут, показать
     
  • 6.64, Аноним (62), 16:37, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нигра с надписью "блейзухи" на футболке в центре обложки.
    Безусловно, это прекрасный источник и пример для подражания.
     
     
  • 7.93, Аноним (-), 09:21, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тебе надо вступить в партию демократов США - через год будешь уважать негров.
     
     
  • 8.138, Аноним (62), 09:32, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, спасибо ... текст свёрнут, показать
     
  • 3.135, Аноним (135), 23:43, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Если вас не пугает бинарник в полгига конечно

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

     
  • 2.21, Ant (??), 12:59, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Компилируются ли Python-программ с PyQt, matplotlib, pandas и кучей других библиотек?
     
     
  • 3.27, Аноним (1), 13:10, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Есть нюансы, например PyQt в абстракции connect надо явно указывать тип данных в сигналах. Еще есть по мелочи.  У меня был PySide и да не сразу как есть но после некоторых приседаний всё заработало.  А в негуевых либах у меня проблем не было.  
     
  • 3.36, kai3341 (ok), 13:58, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +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. Подрробнее в описании

     
     
  • 4.58, Аноним (1), 15:51, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    На pypi кстати есть такая опция можно написать описание к своему пакету и стороннему человеку будет понятно что пакет делает.  
     
     
  • 5.67, kai3341 (ok), 17:34, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > На pypi кстати есть такая опция можно написать описание к своему пакету
    > и стороннему человеку будет понятно что пакет делает.

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

     

     ....большая нить свёрнута, показать (42)

  • 1.2, Аноним (2), 11:33, 14/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Почему бы сразу не написать на с, а не натягивать глаз на глобус?
     
     
  • 2.6, Аноним (6), 11:45, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Си надо еще осилить.
    А тут можно буяк-буяк и вперед пользуйтесь.
     
     
  • 3.8, Аноним (8), 11:47, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А что там осиливать? Язык высокого уровня как никак.
     
     
  • 4.84, KhabMan (ok), 05:56, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну да. То, что это не ассемблер, делает язык простым, конечно))
    Тут кстати парадокс получается. Ассемблер сложный потому, что он простой
     
     
  • 5.86, n00by (ok), 07:37, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ассемблер простой, когда понятно как процессор работает. Для Си execution environment формализован, т.е. более-менее понятно, как работает. Парадокс скорее в том, что остальные "очень простые" императивные языки высокого уровня симулирую машину Тьюринга - некую бесконечную хтонь.
     
  • 2.7, Аноним (8), 11:46, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что... Да!
     
  • 2.11, Аноним (11), 11:56, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Почему нельзя, многие так и делают. На чем писать каждый сам решает, этим вот захотелось так.
     
  • 2.28, Аноним (1), 13:13, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Наоборот зачем эти полумеры, лучше сразу писать на Электроне.
     
  • 2.32, BrainFucker (ok), 13:32, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Почему бы сразу не написать на с,

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

     
     
  • 3.106, Прохожий (??), 10:23, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На Rust же!
     
     
  • 4.123, Аноним (123), 14:56, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Эй, дырка!
     
     
  • 5.133, Прохожий (??), 23:00, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Какие у тебя любопытные ассоциации. Как говаривала одна очень известная личность, кто как обзывается, тот так и называется.
     
  • 3.136, Аноним (136), 00:49, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу видно, что тебя минуснули нешарящие :) Nim - офигенная штука, кстати.
     
  • 2.69, Аноним (69), 18:24, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что на питоне я напишу, сдам заказчику, получу вознаграждение, заказчик получит прибыль, программа со временем устареет и все будут довольны. А в это время ты все еще будешь писать ее на своем си.
     
     
  • 3.72, Аноним (1), 19:25, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –6 +/
    А если писать на раст то тоже будет продолжать писать, но с чувством безопасности.  
     
  • 3.82, Аноним (82), 23:42, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Я на Delphi напишу в два раза быстрее, красивее и фичастее, чем ты на своем питоне. Но тебе ещё придётся переписывать все с нуля при появлении 3.10
     
     
  • 4.94, Прохожий (??), 09:41, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не напишешь. Delphi - язык со статической типизацией - больше усилий для написания кода. Компилируемый. Тоже временные затраты - отлаживать дольше, нет возможности быстро запускать отдельные куски кода. По поводу фичастости - это вообще шутка неудачная была? Где Delphi, а где - фичи. Впрочем, может что-то изменилось с тех бородатых времен, когда я смотрел на Delphi.
    И ещё я не сказал про гораздо более богатый набор библиотек для Питона. Теперь говорю. Delphi до Питона в этом плане, как от Земли до Луны.
    И нет, при появлении Питона 3.10 ничего переписывать не придётся.
     
     
  • 5.119, anonymous (??), 11:32, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > со статической типизацией - больше усилий для написания кода.

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

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

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

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

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

     
     
  • 6.130, Прохожий (??), 22:31, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > С чего вы взяли, что усилий больше? (а не наоборот)

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

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

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

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

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

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

     
  • 5.121, Аноним (121), 13:28, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А почему же тогда с 2.х на 3.х переход был таким, что около 15-20 лет наработок превратилось в тыкву?
    Какие такие крутые билблиотеки? Delphi умеет в БД (FireDAC), в графику (включая DirrectX и OpenGL), в сеть (Indy), в dll, в TouchScreen, в Windows/Linux/Android/MaxOS. Время компиляции - секунды. Дебаг вообще смешно. Там рантайм дебаг, хочь пошагово, хочь - по брейк поинту, хоч - Run to Cursor. И в стек посмотреть можно и в регистры CPU и даже в Thread.
     
     
  • 6.124, Аноним (124), 15:53, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сейчас бы сравнивать версии 2/3 с 3/3.10
     
  • 6.131, Прохожий (??), 22:51, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дельфи не умеет в линейную алгебру, символьную математику, в машинное обучение. Библиотеки для Питона (написанные или на Фортране, или на C) - умеют. Питон в данном случае сильно упрощает жизнь учёным (они не профессиональные программисты, а работу делать надо).

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

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

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

     
     
  • 7.149, Аноним (82), 21:30, 17/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, не ваша беда, что вы плохо знаете делфи. В определённый этап своей жизни нужно было сделать выбор и вы его сделали правильно. Популярность + деньги. Но это не означает, что делфи не умеет в алгебру (math) в скрипты (Pascal script), Web (сам тоже не видел, но в компонентный базе ВСЕ для этого есть), вот ml похоже действительно не конёк паскаля. А вот учёные, отлично с MathLab справлялись, по крайней мере теплофизики (ни строчки кода знать не нужно)
     
     
  • 8.150, Прохожий (??), 00:59, 18/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Полностью согласен За Дельфи много не платят Вакансий тоже, вроде, немного Ну... большой текст свёрнут, показать
     
  • 8.156, пох. (?), 12:35, 19/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    это тебе повезло что не видел Мы такого монстра образца примерно 1998го года - ... текст свёрнут, показать
     
  • 4.104, Myyx (?), 10:18, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    это в собранной то в бинарник программе?
     
     
  • 5.120, Брат Анон (ok), 12:10, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    #яснопонятно. В отладчики мы не умеем и даже не слышали. Впрочем, для этого есть тестирование (см. пункт выше).
     
  • 2.134, Прохожий (??), 23:17, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что возиться с компиляторами, отладчиками, линковщиками, указателями, макроснёй и прочей х-тенью полувековой давности мало у кого есть желание среди нормальных современных людей. До некоторых особо одарённых никак не дойдёт, что идеальное программирование - это когда компьютер понимает мысли человека, а не когда человек насилует свой мозг, чтобы разобраться в том, что нужно компьютеру.

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

     
     
  • 3.151, Аноним (151), 15:01, 18/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Сказочный человек
     
     
  • 4.154, Прохожий (??), 23:05, 18/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вы впервые в жизни увидели своё отражение в зеркале? Гм, забавно.
     

  • 1.37, Урри (ok), 14:07, 14/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > Оптимизация пока применима только к коду, компилируемому при помощи GCC.

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

     
     
  • 2.42, Аноним (42), 14:22, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    -O4 уже есть.
     
     
  • 3.87, Аноним (126), 08:02, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В статье речь совсем не про О-шки...
     
  • 2.43, Аноним (49), 14:31, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пго есть только у гцц, насколько я знаю. В том числе со сбором информации через автопрофилировщик, но прогнать тесты более актуально. Примерно с гцц-9 пго юзать одно удовольствие, в генту можно любой пакет собрать с пго (правда вручную, при обновлении придётся подменять флаги опять). на практике это конечно пара процентов, но для -O3 разница в скорости запуска и исполнения до 60% доходит (или около того). Вообще, на сегодня нет никакого смысла использовать шланг, раньше он был полезен дополнительными проверками и читаемыми сообщениями об ошибках, но с тех пор гцц улучшили. По скорости компиляции гцц тоже лучше (шланг замедлили основательно).
     
     
  • 3.76, анонн (ok), 20:48, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Пго есть только у гцц, насколько я знаю.

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


     
     
  • 4.79, Аноним (49), 21:45, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    У меня не получилось. В gcc тоже пго было сто лет назад, но до 9 оно было через одно место. Свой софт можно было с пго собрать обложив скриптами, но вот так чтобы любую прогу собрать добавив 2 ключа -- нет.
     

  • 1.41, Аноним (42), 14:21, 14/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Отлично, ещё бы в дебчике питонятину откомпилять.
     
     
  • 2.45, Аноним (49), 14:35, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это ничего не даст. Компиляция сабжем только незначительно ускоряет запуск и больше ничего. Нивелируется недостатками в виде жжора памяти и дополнительным временем на чтение с диска.
     
     
  • 3.56, kusb (?), 15:30, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Странно, не скомпилированный код же по идее должен тратить такты на обдумывание интерпретатором каждой команды?
     
     
  • 4.60, n00by (ok), 16:12, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +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



     
     
  • 5.61, n00by (ok), 16:20, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё немножко этих интерпретаций



    $ 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



     
     
  • 6.91, Аноним (91), 09:01, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, pypy3 loop.py даёт 1.259338617324829 сек.
     
     
  • 7.109, n00by (ok), 10:28, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо. Сейчас протестирую. Компилируется это pypy3 дольше чем MLton, сразу видно, крутая штука.
     
  • 7.116, n00by (ok), 11:02, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Кстати, pypy3 loop.py даёт 1.259338617324829 сек.

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

    $ pypy3 loop.py
    Hello
    Time elapsed:  1.1507835388183594

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

     
     
  • 8.142, abababab (?), 13:50, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что, c помощью pypy нельзя сделать готовый бинарник, независимый от интер... текст свёрнут, показать
     
     
  • 9.148, n00by (ok), 05:44, 17/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А какую задачу это решает Скрыть исходный текст скрипта от посторонних глаз Ил... текст свёрнут, показать
     
  • 6.95, Прохожий (??), 09:53, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А где print("Hello Word")? Где измерение времени средствами языка? Про pypi тебе уже написали.
     
     
  • 7.96, Прохожий (??), 09:56, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    pypy
     
  • 7.97, n00by (ok), 10:03, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А где print("Hello Word")?

    print("Hello")

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

    import time
    t0= time.time()

    print("Time elapsed: ", t1)

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

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

     
     
  • 8.99, Прохожий (??), 10:06, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я твой скрипт на рефале имеешь ввиду Мог бы и догадаться ... текст свёрнут, показать
     
     
  • 9.100, Прохожий (??), 10:07, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    имеешь - имел ... текст свёрнут, показать
     
  • 9.101, n00by (ok), 10:12, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем Включающий время трансляции результат вполне устраивает Догадаться, за... текст свёрнут, показать
     
     
  • 10.103, Прохожий (??), 10:16, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    1 Затем, что затраты на вывод - они не бесплатные На измерение времени - тоже ... текст свёрнут, показать
     
     
  • 11.105, n00by (ok), 10:18, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А затраты на чтение исходника и его семантический разбор ... текст свёрнут, показать
     
     
  • 12.108, Прохожий (??), 10:27, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что про pypy скажешь Ты как-то в упор не замечаешь его почему-то Почему ... текст свёрнут, показать
     
     
  • 13.110, n00by (ok), 10:29, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что pypy собирается в один поток и я всё еще жду Впрочем, оно не имеет о... текст свёрнут, показать
     
     
  • 14.113, Прохожий (??), 10:37, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вопрос был об эффективности компилятора Ты его сравнил с Рафал Рафал победил с... текст свёрнут, показать
     
     
  • 15.114, Прохожий (??), 10:39, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Рафал - рефал ... текст свёрнут, показать
     
  • 15.117, n00by (ok), 11:19, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В 60 я сравнил python3 9 и nuitka3 Результат 88 5 и 49 2 Что странно для комп... большой текст свёрнут, показать
     
     
  • 16.128, Прохожий (??), 22:23, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за ответ Значит, не судьба этому компилятору пока быть быстрым Продолж... текст свёрнут, показать
     
     
  • 17.140, n00by (ok), 12:48, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Думается, авторам следовало бы обозначить, что проект исследовательский или что-... текст свёрнут, показать
     
     
  • 18.141, DyadyushkaAU (ok), 13:34, 16/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Сомневаюсь хотя мой опыт ограничен , что наличие какого-либо ключа способно уве... текст свёрнут, показать
     
  • 14.115, Прохожий (??), 10:43, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не имеет Но уже просто интересно ... текст свёрнут, показать
     
  • 12.111, Прохожий (??), 10:30, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Предположим, что они одинаковы Или есть сомнения ... текст свёрнут, показать
     
     
  • 13.118, n00by (ok), 11:28, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Они далеко не одинаковы 1 вызов write против open 6-ти mmap , одна из ко... текст свёрнут, показать
     
  • 2.53, Аноним (1), 15:23, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да только откомпилить для каждого дистрибутива, версии подверсии, под каждое ядро, UEK. И не факт что оно будет один в один работать так же как задумано на обычном питоне.  
     

     ....большая нить свёрнута, показать (29)

  • 1.70, all_glory_to_the_hypnotoad (ok), 18:41, 14/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > ... повышение производительности на 335%

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

     
     
  • 2.74, Аноним (1), 19:32, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    3 это в синтетике, на самом деле меньше. Подсказка: попробуй откомпилить джангу и когда после танцев это получится узнай что можно использовать в два раза меньше виртуалок для той же производительности.  
     
  • 2.80, Vkni (ok), 22:09, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Т.е. всего лишь в 3.0-3.5 раз. Питон во столько можно ускорить просто оптимизациями гогнокода. Ради такого мизерного прироста компиляция не нужна.

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

     
     
  • 3.81, all_glory_to_the_hypnotoad (ok), 22:36, 14/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Компиляция не бесплата т.к. для неё нужно навернуть инфраструктуру, которой в обычной питонячке нет
     
     
  • 4.89, Аноним (1), 08:44, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это только если ты операционную системы решил скомпилировать.
     
  • 4.125, Vkni (ok), 20:03, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Компиляция не бесплата т.к. для неё нужно навернуть инфраструктуру, которой в обычной
    > питонячке нет

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

     
  • 2.112, Щ (?), 10:35, 15/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это вы описали повышение производительности на 235%
     

  • 1.122, xor (??), 14:04, 15/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вы как-то используете наработки shed skin?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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