The OpenNET Project / Index page

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



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

"Выпуск 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.ru/opennews/art.shtml?num=57924

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

Оглавление

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

1. Сообщение от Аноним (1), 17-Окт-22, 10:02   +/
Все пытаются и пытаются ускорить питон. А он все никак не ускоряется и не ускоряется. Да что же это такое?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #16, #71, #75

2. Сообщение от Аноним (2), 17-Окт-22, 10:06   +6 +/
Огромная популярность языка и желание его ускорить делают свое дело: постепенно мы придем к быстрому, компилируемому, возможно, статически типизированному Python.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #6, #15, #19, #33, #72

3. Сообщение от commiethebeastie (ok), 17-Окт-22, 10:08   +/
>статически типизированному Python.

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

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

6. Сообщение от Аноним (6), 17-Окт-22, 10:32   +1 +/
Быстрый питон к 2050 году
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

8. Сообщение от Аноним (8), 17-Окт-22, 11:05   –5 +/
"Выпуск 1.1"? На гитхабе тегу "1.1" уже 3 недели, а 3 дня назад вышел "1.1.5".
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9

9. Сообщение от Аноним (1), 17-Окт-22, 11:11   +4 +/
Релиз - это не когда создают "тег", а когда разрабы объявляют во всеуслышание, что "вот теперь все готово".

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

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

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

15. Сообщение от Chlen22sm (?), 17-Окт-22, 12:03   –5 +/
> статически типизированному

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

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

16. Сообщение от Chlen22sm (?), 17-Окт-22, 12:04   +4 +/
Его не надо ускорять. Задачи в которых его используют упираются в тормоза io. Для особо требовательных можно подключить библиотеки написанные на C.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #39, #64, #69

19. Сообщение от Igraine (ok), 17-Окт-22, 12:16   –3 +/
Компилируемый статически типизированный python это Cython

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

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

20. Сообщение от Тот_Самый_Анонимус_ (?), 17-Окт-22, 12:19   +1 +/
Ликбез:
Современный не равен тупому.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

22. Сообщение от a_kusb (ok), 17-Окт-22, 12:25   –2 +/
А как статическая типизация ускоряет программы? На уровне процессора типов нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #25, #26, #34

25. Сообщение от Арикайнен Анатолий (?), 17-Окт-22, 12:43   +1 +/
Это как посмотреть. Типы языка высокого или низкого уровня так или и иначе связаны с регистрами процессора.

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

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

26. Сообщение от Аноним (26), 17-Окт-22, 12:55   +2 +/
Когда тебе надо поработать с переменной, например вывести в консоль, тебе придется узнать что за данные в ней содержатся. В статически типизированном языке компилятор в момент компиляции уже это знает и соотв. может применить к этим данным какой-то код. В динамически типизированном языке придется выполнять проверку на то, какой код следует применить. В ситуации с тем же выводом содержимого переменной, число перед выводом должно быть приведено к специальному формату - значениям текстовых символов. А строка уже представляет собой набор таких символов и в дополнительной обработке не нуждается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #36

29. Сообщение от Лолштоним (ok), 17-Окт-22, 13:05   –1 +/
Трансляция скриптов на языке Python в представление на языке C, которое затем можно переписать на Rust.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #35, #37

31. Сообщение от fake_name (?), 17-Окт-22, 13:10   –1 +/
Правильность этого утверждения сильно зависит от того, какой смысл вкладывается в определение современного языка
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

33. Сообщение от Бывалый смузихлёб (?), 17-Окт-22, 13:21   –4 +/
Конечно, придём. Но за несколько лет до этого вдруг резко начнётся форсирование другого модного ЯП как питона ещё относительно недавно.
И удобный, быстрый и годный питон окажется просто никому не нужен и полетит на свалку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #73

34. Сообщение от n00by (ok), 17-Окт-22, 13:22   +1 +/
> А как статическая типизация ускоряет программы? На уровне процессора типов нет.

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

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

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

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

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

35. Сообщение от Бывалый смузихлёб (?), 17-Окт-22, 13:23   +/
.. и скомилить в WASM
После чего запустить с JS-обёрткой
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #61, #68

36. Сообщение от n00by (ok), 17-Окт-22, 13:28   –2 +/
Пример с выводом на консоль не очень удачный. fprintf() определяет тип аргументов во время исполнения, разбирая спецификаторы формата. Ну и вывод на консоль вряд ли какую программу сильно замедлит. Это не вычисления.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #67

37. Сообщение от Аноним (37), 17-Окт-22, 13:32   –2 +/
Переписывайте, мы вам ещё и с Nim Сишников нагенерим. Чем бы растодети не тешились.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

39. Сообщение от YetAnotherOnanym (ok), 17-Окт-22, 15:14   –5 +/
> Задачи в которых его используют упираются в тормоза io

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

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

44. Сообщение от Аноним (44), 17-Окт-22, 16:36   –1 +/
Что, на других языках мои условные 10K IOPS превратятся в 50?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #56

56. Сообщение от YetAnotherOnanym (ok), 17-Окт-22, 18:02   –2 +/
Строго говоря, чтобы ответить на этот вопрос, надо знать максимальное значение IPOS, которое может обеспечить данное железо под данной ОС.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

59. Сообщение от Аноним (-), 17-Окт-22, 19:08   +/
Nuitka. Как переводится это слово?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #60

60. Сообщение от Анно Домини (?), 17-Окт-22, 19:24   +/
Nuitka is short for Annuitka, which is the nickname of my wife Anna who is Russian
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #62

61. Сообщение от Аноним (61), 17-Окт-22, 20:03   +/
...в контейнере шлакпака под ксеном в виртуалке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

62. Сообщение от Аноним (62), 17-Окт-22, 21:09   +/
"Нюшка" таки иначе пишется....
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #63

63. Сообщение от Аноним (63), 18-Окт-22, 01:29   +/
Анюшка наверное
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #66

64. Сообщение от Ванёк (?), 18-Окт-22, 02:26   –2 +/
Все используют его для своих задач, для разных задач. У многих ничего в io не упирается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

66. Сообщение от economist (?), 18-Окт-22, 07:48   +2 +/
Анютка (рус.)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #74

67. Сообщение от Аноним (67), 18-Окт-22, 09:19   +/
Консоль сама по себе одно из самые тормозных мест туда лучше ничего не выводить если нужна скорость.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #70

68. Сообщение от Аноним (67), 18-Окт-22, 09:21   +/
WASM можно сделать и из C++. В той же Фигме WASM из C++ и там всё работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

69. Сообщение от Аноним (69), 18-Окт-22, 09:36   –1 +/
Если не надо ускорять, может быть можно ещё медленнее сделать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

70. Сообщение от n00by (ok), 18-Окт-22, 12:45   –1 +/
А ещё лучше не путать тормоза в эмуляторе терминала, который отображает вывод в консоль, и даже может отсутствовать, и тормоза в коде программы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

71. Сообщение от Аноним (-), 18-Окт-22, 19:10   –1 +/
Просто Ван Россум хочет на пенсию и с очередной версией питона всё это ломается, ну прям как с очередным коммитом кое-где моментально ломается gccrs.

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

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

72. Сообщение от Аноним (-), 18-Окт-22, 19:12   +/
Но уже давно есть лисп, в котором можно рисовать типы, а можно и не рисовать. И всё это уже давно компиляется в асм. А в питоне такого не будет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

73. Сообщение от Аноним (-), 18-Окт-22, 19:14   +/
Вы же точно таким же образом зафорсили питон заместо перла - карма неизбежна.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

74. Сообщение от Аноним (74), 19-Окт-22, 00:47   +/
Нюська
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

75. Сообщение от Прохожий (??), 19-Окт-22, 06:46   +/
Чукча не читатель.
Цитата из статьи:"По сравнению с CPython скомпилированные скрипты демонстрируют в тестах pystone повышение производительности на 335%."
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

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


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

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




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

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