URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 128674
[ Назад ]

Исходное сообщение
"Выпуск Nuitka 1.1, компилятора для языка Python "

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

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


Содержание

Сообщения в этом обсуждении
"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 10:02 
Все пытаются и пытаются ускорить питон. А он все никак не ускоряется и не ускоряется. Да что же это такое?

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Chlen22sm , 17-Окт-22 12:04 
Его не надо ускорять. Задачи в которых его используют упираются в тормоза io. Для особо требовательных можно подключить библиотеки написанные на C.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено YetAnotherOnanym , 17-Окт-22 15:14 
> Задачи в которых его используют упираются в тормоза io

Ога. Почему-то для других языков io работает без тормозов.


"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 16:36 
Что, на других языках мои условные 10K IOPS превратятся в 50?

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено YetAnotherOnanym , 17-Окт-22 18:02 
Строго говоря, чтобы ответить на этот вопрос, надо знать максимальное значение IPOS, которое может обеспечить данное железо под данной ОС.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Ванёк , 18-Окт-22 02:26 
Все используют его для своих задач, для разных задач. У многих ничего в io не упирается.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 18-Окт-22 09:36 
Если не надо ускорять, может быть можно ещё медленнее сделать?

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 18-Окт-22 19:10 
Просто Ван Россум хочет на пенсию и с очередной версией питона всё это ломается, ну прям как с очередным коммитом кое-где моментально ломается gccrs.

А разгадка одна - надо было писать на лиспе, в котором всё это уже давно и надолго.


"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Прохожий , 19-Окт-22 06:46 
Чукча не читатель.
Цитата из статьи:"По сравнению с CPython скомпилированные скрипты демонстрируют в тестах pystone повышение производительности на 335%."

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 10:06 
Огромная популярность языка и желание его ускорить делают свое дело: постепенно мы придем к быстрому, компилируемому, возможно, статически типизированному Python.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено commiethebeastie , 17-Окт-22 10:08 
>статически типизированному Python.

Проблема в том, что даже разработчики ложили на типизацию.


"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 11:21 
Обычно это всё же "что-то" либо None. Ситуации, когда тип может оказаться и строкой и целым не нормальны. Зато вот словарём и списком вполне часто встречаемая ситуация, и на основании этого можно разбирать соответственно (оставляя остальную логику неизменной). Скорее всего, разобрать и типизировать статически вполне осуществимо, только несколько раздует. Ну, как шаблоны в плюсах.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено a_kusb , 17-Окт-22 12:25 
А как статическая типизация ускоряет программы? На уровне процессора типов нет.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Арикайнен Анатолий , 17-Окт-22 12:43 
Это как посмотреть. Типы языка высокого или низкого уровня так или и иначе связаны с регистрами процессора.

А статическая типизация исключает преобразование типов, так что код сокращается, скорость выполнения растет. Но это незначительно. Типизация позволяет исключить ряд потенциальных ошибок при разработке.


"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 12:55 
Когда тебе надо поработать с переменной, например вывести в консоль, тебе придется узнать что за данные в ней содержатся. В статически типизированном языке компилятор в момент компиляции уже это знает и соотв. может применить к этим данным какой-то код. В динамически типизированном языке придется выполнять проверку на то, какой код следует применить. В ситуации с тем же выводом содержимого переменной, число перед выводом должно быть приведено к специальному формату - значениям текстовых символов. А строка уже представляет собой набор таких символов и в дополнительной обработке не нуждается.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено n00by , 17-Окт-22 13:28 
Пример с выводом на консоль не очень удачный. fprintf() определяет тип аргументов во время исполнения, разбирая спецификаторы формата. Ну и вывод на консоль вряд ли какую программу сильно замедлит. Это не вычисления.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 18-Окт-22 09:19 
Консоль сама по себе одно из самые тормозных мест туда лучше ничего не выводить если нужна скорость.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено n00by , 18-Окт-22 12:45 
А ещё лучше не путать тормоза в эмуляторе терминала, который отображает вывод в консоль, и даже может отсутствовать, и тормоза в коде программы.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено n00by , 17-Окт-22 13:22 
> А как статическая типизация ускоряет программы? На уровне процессора типов нет.

Например a + b. В 32-х разрядном процессоре. Целое число занимает 4 байта. Строка занимает 4 байта - адрес символов в памяти (плюс сами эти символы, но в данном случае это не важно).

При статической типизации. Если a и b целые, транслятор генерирует команду сложения. Если это строки - тогда вставляет вызов подпрограммы объединения строк.

При динамической типизации. К тем 4-м байтам прибавляется еще 4 байта - тэг. Транслятор генерирует вызов подпрограммы универсального сложения. Та подпрограмма проверяет тег, а потом уже вызывает соответствующее каждому типу сложение.

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


"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 10:32 
Быстрый питон к 2050 году

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Chlen22sm , 17-Окт-22 12:03 
> статически типизированному

Тогда это будет уже не пайтон. Типизации в современных языках вообще не нужны.


"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Тот_Самый_Анонимус_ , 17-Окт-22 12:19 
Ликбез:
Современный не равен тупому.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено fake_name , 17-Окт-22 13:10 
Правильность этого утверждения сильно зависит от того, какой смысл вкладывается в определение современного языка

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Igraine , 17-Окт-22 12:16 
Компилируемый статически типизированный python это Cython

Нужен ли он "если в современных языках типизация не нужна", это отдельный вопрос.


"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Бывалый смузихлёб , 17-Окт-22 13:21 
Конечно, придём. Но за несколько лет до этого вдруг резко начнётся форсирование другого модного ЯП как питона ещё относительно недавно.
И удобный, быстрый и годный питон окажется просто никому не нужен и полетит на свалку.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 18-Окт-22 19:14 
Вы же точно таким же образом зафорсили питон заместо перла - карма неизбежна.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 18-Окт-22 19:12 
Но уже давно есть лисп, в котором можно рисовать типы, а можно и не рисовать. И всё это уже давно компиляется в асм. А в питоне такого не будет.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 11:05 
"Выпуск 1.1"? На гитхабе тегу "1.1" уже 3 недели, а 3 дня назад вышел "1.1.5".

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 11:11 
Релиз - это не когда создают "тег", а когда разрабы объявляют во всеуслышание, что "вот теперь все готово".

16 October - Nuitka Release 1.1 - This is to inform you about the new stable release of Nuitka. https://nuitka.net/


"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Лолштоним , 17-Окт-22 13:05 
Трансляция скриптов на языке Python в представление на языке C, которое затем можно переписать на Rust.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Бывалый смузихлёб , 17-Окт-22 13:23 
.. и скомилить в WASM
После чего запустить с JS-обёрткой

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 20:03 
...в контейнере шлакпака под ксеном в виртуалке.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 18-Окт-22 09:21 
WASM можно сделать и из C++. В той же Фигме WASM из C++ и там всё работает.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 13:32 
Переписывайте, мы вам ещё и с Nim Сишников нагенерим. Чем бы растодети не тешились.

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 19:08 
Nuitka. Как переводится это слово?

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Анно Домини , 17-Окт-22 19:24 
Nuitka is short for Annuitka, which is the nickname of my wife Anna who is Russian

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 17-Окт-22 21:09 
"Нюшка" таки иначе пишется....

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 18-Окт-22 01:29 
Анюшка наверное

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено economist , 18-Окт-22 07:48 
Анютка (рус.)

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 19-Окт-22 00:47 
Нюська

"Выпуск Nuitka 1.1, компилятора для языка Python "
Отправлено Аноним , 10-Ноя-22 17:43 
Сделал простой веб-сервер на FastAPI для теста, замерил rps с помощью siege, собрал проект с помощью Nuitka --onefile, получился бинарь на 30% меньше, чем получается сборка на Alpine multi-stage build. Замерил rps, получилось 80% от обычного запуска... Ладно думаю, то сеть все дела (хотя медленнее то оно стать не должно из-за сети, т.к. один и тот же lo), попробую математику. Сделай простой скрипт, без зависимостей, где простой перебор в 2-х вложенных циклах с математикой внутри и ветвлением. Делаю несколько прогонов, получается 90% от обычного запуска. Как получить обещанные +335% ?