1.1, Аноним (1), 10:02, 17/10/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Все пытаются и пытаются ускорить питон. А он все никак не ускоряется и не ускоряется. Да что же это такое?
| |
|
2.16, Chlen22sm (?), 12:04, 17/10/2022 [^] [^^] [^^^] [ответить]
| +4 +/– |
Его не надо ускорять. Задачи в которых его используют упираются в тормоза io. Для особо требовательных можно подключить библиотеки написанные на C.
| |
|
3.39, YetAnotherOnanym (ok), 15:14, 17/10/2022 [^] [^^] [^^^] [ответить]
| –5 +/– |
> Задачи в которых его используют упираются в тормоза io
Ога. Почему-то для других языков io работает без тормозов.
| |
|
4.44, Аноним (44), 16:36, 17/10/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Что, на других языках мои условные 10K IOPS превратятся в 50?
| |
|
5.56, YetAnotherOnanym (ok), 18:02, 17/10/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Строго говоря, чтобы ответить на этот вопрос, надо знать максимальное значение IPOS, которое может обеспечить данное железо под данной ОС.
| |
|
|
3.64, Ванёк (?), 02:26, 18/10/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Все используют его для своих задач, для разных задач. У многих ничего в io не упирается.
| |
3.69, Аноним (69), 09:36, 18/10/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Если не надо ускорять, может быть можно ещё медленнее сделать?
| |
|
2.71, Аноним (-), 19:10, 18/10/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Просто Ван Россум хочет на пенсию и с очередной версией питона всё это ломается, ну прям как с очередным коммитом кое-где моментально ломается gccrs.
А разгадка одна - надо было писать на лиспе, в котором всё это уже давно и надолго.
| |
2.75, Прохожий (??), 06:46, 19/10/2022 [^] [^^] [^^^] [ответить]
| +/– |
Чукча не читатель.
Цитата из статьи:"По сравнению с CPython скомпилированные скрипты демонстрируют в тестах pystone повышение производительности на 335%."
| |
|
1.2, Аноним (2), 10:06, 17/10/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Огромная популярность языка и желание его ускорить делают свое дело: постепенно мы придем к быстрому, компилируемому, возможно, статически типизированному Python.
| |
|
|
3.11, Аноним (11), 11:21, 17/10/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Обычно это всё же "что-то" либо None. Ситуации, когда тип может оказаться и строкой и целым не нормальны. Зато вот словарём и списком вполне часто встречаемая ситуация, и на основании этого можно разбирать соответственно (оставляя остальную логику неизменной). Скорее всего, разобрать и типизировать статически вполне осуществимо, только несколько раздует. Ну, как шаблоны в плюсах.
| |
3.22, a_kusb (ok), 12:25, 17/10/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
А как статическая типизация ускоряет программы? На уровне процессора типов нет.
| |
|
4.25, Арикайнен Анатолий (?), 12:43, 17/10/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это как посмотреть. Типы языка высокого или низкого уровня так или и иначе связаны с регистрами процессора.
А статическая типизация исключает преобразование типов, так что код сокращается, скорость выполнения растет. Но это незначительно. Типизация позволяет исключить ряд потенциальных ошибок при разработке.
| |
4.26, Аноним (26), 12:55, 17/10/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Когда тебе надо поработать с переменной, например вывести в консоль, тебе придется узнать что за данные в ней содержатся. В статически типизированном языке компилятор в момент компиляции уже это знает и соотв. может применить к этим данным какой-то код. В динамически типизированном языке придется выполнять проверку на то, какой код следует применить. В ситуации с тем же выводом содержимого переменной, число перед выводом должно быть приведено к специальному формату - значениям текстовых символов. А строка уже представляет собой набор таких символов и в дополнительной обработке не нуждается.
| |
|
5.36, n00by (ok), 13:28, 17/10/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Пример с выводом на консоль не очень удачный. fprintf() определяет тип аргументов во время исполнения, разбирая спецификаторы формата. Ну и вывод на консоль вряд ли какую программу сильно замедлит. Это не вычисления.
| |
|
6.67, Аноним (67), 09:19, 18/10/2022 [^] [^^] [^^^] [ответить]
| +/– |
Консоль сама по себе одно из самые тормозных мест туда лучше ничего не выводить если нужна скорость.
| |
|
7.70, n00by (ok), 12:45, 18/10/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
А ещё лучше не путать тормоза в эмуляторе терминала, который отображает вывод в консоль, и даже может отсутствовать, и тормоза в коде программы.
| |
|
|
|
4.34, n00by (ok), 13:22, 17/10/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А как статическая типизация ускоряет программы? На уровне процессора типов нет.
Например a + b. В 32-х разрядном процессоре. Целое число занимает 4 байта. Строка занимает 4 байта - адрес символов в памяти (плюс сами эти символы, но в данном случае это не важно).
При статической типизации. Если a и b целые, транслятор генерирует команду сложения. Если это строки - тогда вставляет вызов подпрограммы объединения строк.
При динамической типизации. К тем 4-м байтам прибавляется еще 4 байта - тэг. Транслятор генерирует вызов подпрограммы универсального сложения. Та подпрограмма проверяет тег, а потом уже вызывает соответствующее каждому типу сложение.
Но есть нюанс. Статическая типизация - обычно компилируется в машинный код. Динамическая типизация - в байт-код для интерпретатора. Интерпретатор сам по себе медленный. Статическая типизация при интерпретации не даёт ощутимого выигрыша. Она имеет смысл, когда в интерпретаторе есть ещё и JIT-компилятор для частовызываемого кода.
| |
|
|
2.15, Chlen22sm (?), 12:03, 17/10/2022 [^] [^^] [^^^] [ответить]
| –5 +/– |
> статически типизированному
Тогда это будет уже не пайтон. Типизации в современных языках вообще не нужны.
| |
|
3.31, fake_name (?), 13:10, 17/10/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Правильность этого утверждения сильно зависит от того, какой смысл вкладывается в определение современного языка
| |
|
2.19, Igraine (ok), 12:16, 17/10/2022 [^] [^^] [^^^] [ответить]
| –3 +/– |
Компилируемый статически типизированный python это Cython
Нужен ли он "если в современных языках типизация не нужна", это отдельный вопрос.
| |
2.33, Бывалый смузихлёб (?), 13:21, 17/10/2022 [^] [^^] [^^^] [ответить]
| –4 +/– |
Конечно, придём. Но за несколько лет до этого вдруг резко начнётся форсирование другого модного ЯП как питона ещё относительно недавно.
И удобный, быстрый и годный питон окажется просто никому не нужен и полетит на свалку.
| |
|
3.73, Аноним (-), 19:14, 18/10/2022 [^] [^^] [^^^] [ответить]
| +/– |
Вы же точно таким же образом зафорсили питон заместо перла - карма неизбежна.
| |
|
2.72, Аноним (-), 19:12, 18/10/2022 [^] [^^] [^^^] [ответить]
| +/– |
Но уже давно есть лисп, в котором можно рисовать типы, а можно и не рисовать. И всё это уже давно компиляется в асм. А в питоне такого не будет.
| |
|
1.8, Аноним (8), 11:05, 17/10/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
"Выпуск 1.1"? На гитхабе тегу "1.1" уже 3 недели, а 3 дня назад вышел "1.1.5".
| |
|
2.9, Аноним (1), 11:11, 17/10/2022 [^] [^^] [^^^] [ответить]
| +4 +/– |
Релиз - это не когда создают "тег", а когда разрабы объявляют во всеуслышание, что "вот теперь все готово".
16 October - Nuitka Release 1.1 - This is to inform you about the new stable release of Nuitka. https://nuitka.net/
| |
|
1.29, Лолштоним (ok), 13:05, 17/10/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Трансляция скриптов на языке Python в представление на языке C, которое затем можно переписать на Rust.
| |
|
|
3.68, Аноним (67), 09:21, 18/10/2022 [^] [^^] [^^^] [ответить]
| +/– |
WASM можно сделать и из C++. В той же Фигме WASM из C++ и там всё работает.
| |
|
2.37, Аноним (37), 13:32, 17/10/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Переписывайте, мы вам ещё и с Nim Сишников нагенерим. Чем бы растодети не тешились.
| |
|
1.76, Аноним (76), 17:43, 10/11/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Сделал простой веб-сервер на FastAPI для теста, замерил rps с помощью siege, собрал проект с помощью Nuitka --onefile, получился бинарь на 30% меньше, чем получается сборка на Alpine multi-stage build. Замерил rps, получилось 80% от обычного запуска... Ладно думаю, то сеть все дела (хотя медленнее то оно стать не должно из-за сети, т.к. один и тот же lo), попробую математику. Сделай простой скрипт, без зависимостей, где простой перебор в 2-х вложенных циклах с математикой внутри и ветвлением. Делаю несколько прогонов, получается 90% от обычного запуска. Как получить обещанные +335% ?
| |
|