The OpenNET Project / Index page

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



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

Оглавление

В Python встроен JIT-компилятор, opennews (??), 10-Апр-24, (0) [смотреть все]

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


135. "В Python добавлен JIT-компилятор"  +/
Сообщение от Skullnetemail (ok), 10-Апр-24, 21:18 
tl;dr

Во сколько раз медленнее С++?

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

136. "В Python добавлен JIT-компилятор"  +3 +/
Сообщение от Ivan7 (ok), 10-Апр-24, 21:29 
> Во сколько раз медленнее С++?

CPython по тестам в сотни раз медленнее C++. Другие варианты Python, более оптимизированные - PyPy, например, - в десятки раз медленнее C++. И кто-то ведь использует его для обработки данных, и даже книги издаются на эту тему... Полная жесть, короче...

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

137. "В Python добавлен JIT-компилятор"  +/
Сообщение от Аноним (129), 10-Апр-24, 22:05 
Так это все равно быстрее чем на си. Написание программы на питоне плюс ожидание ее выполнения суммарно меньше, чем написание программы на си.
Ответить | Правка | Наверх | Cообщить модератору

140. "В Python добавлен JIT-компилятор"  +1 +/
Сообщение от Аноним (113), 10-Апр-24, 22:39 
Это зависит от того, что программа должна делать. Большинство задач, которые в ML решают, на C пишутся не сложнее. Просто у C синтаксис поприятнее будет.
Ответить | Правка | Наверх | Cообщить модератору

166. "В Python добавлен JIT-компилятор"  +/
Сообщение от Аноним (165), 11-Апр-24, 07:29 
"Hello, World!", да, на C пишется быстрее. Синтаксис поприятнее, да. Только этого синтаксиса не хватает, поэтому вспоминают, что есть C++.
Ответить | Правка | Наверх | Cообщить модератору

143. "В Python добавлен JIT-компилятор"  +1 +/
Сообщение от Аноним (138), 10-Апр-24, 22:49 
Если запустить 1 раз с 1кб данных, то да. А если запускать миллионы раз с террабайтами данных, тут С/C++ вне конкуренции. Ну ты меня, надеюсь, понял.
Ответить | Правка | К родителю #137 | Наверх | Cообщить модератору

167. "В Python добавлен JIT-компилятор"  +/
Сообщение от Аноним (165), 11-Апр-24, 07:33 
Миллионы раз запускать, это уже не прототипирование. Здесь стоит переписать с Питона, если десятки раз удачно отработало.
Ответить | Правка | Наверх | Cообщить модератору

218. "В Python добавлен JIT-компилятор"  +/
Сообщение от Илья (??), 12-Апр-24, 08:15 
> Здесь стоит переписать с Питона

А зачем тогда вообще начинать писать на пэйфоне?

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

234. "В Python добавлен JIT-компилятор"  –1 +/
Сообщение от Прохожий (??), 14-Апр-24, 07:29 
Затем, что речь идёт о прототипе. Пайтон в этом плане очень хорош по сравнению с тем же Си - намного более лаконичный язык, который к тому же проще читать и понимать (при условии, что код аннотациями типов снабжён).
Ответить | Правка | Наверх | Cообщить модератору

240. "В Python добавлен JIT-компилятор"  +/
Сообщение от Илья (??), 14-Апр-24, 10:17 
> Затем, что речь идёт о прототипе. Пайтон в этом плане очень хорош по сравнению с тем же Си

Давай предположим, что между самой низкопроизводительной технологией (пэйфон) и самой быстрой (СИ) есть 2-3 промежуточных решения, на которых можно и прототипы писать быстро и работать будет хорошо?

Можешь мне, глупому, объяснить, зачем вообще нужен пэйфон?

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

241. "В Python добавлен JIT-компилятор"  +/
Сообщение от Илья (??), 14-Апр-24, 10:49 
> намного более лаконичный язык, который к тому же проще читать и понимать

Это очередной миф. Лаконичность - это приятный бонус к читаемости, но не более.

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


И пайфон со своей динамической структурой тут очень плох.

Да, ты можешь быстрее стартануть проект на пайфоне и меньше ПЕЧАТАТЬ в первую неделю разработки. Но уже на второй месяц разработки ты получаешь doubtfull решение. Ты ни в чём не уверен и сидишь как бабка у корыта.

Всё это проходили уже много раз.
Всё это проходили уже много раз.

Ответить | Правка | К родителю #234 | Наверх | Cообщить модератору

184. "В Python добавлен JIT-компилятор"  +/
Сообщение от Вы забыли заполнить поле Name (?), 11-Апр-24, 12:24 
> И кто-то ведь использует его для обработки данных, и даже книги издаются на эту тему... Полная жесть, короче...

Ты бы глянул на чем питонячие библиотеки для данных написаны под копотом для начала.

Ответить | Правка | К родителю #136 | Наверх | Cообщить модератору

198. "В Python добавлен JIT-компилятор"  +/
Сообщение от Ivan7 (ok), 11-Апр-24, 16:43 
Для обработки данных на С++ чаще всего вообще никакие библиотеки не нужны. А вот в питоне без сишных либ вообще никакая обработка больших данных невозможна из-за его сверхнизкой производительности. И даже с сишными библиотеками он всё-равно очень медленный.
Ответить | Правка | Наверх | Cообщить модератору

235. "В Python добавлен JIT-компилятор"  +/
Сообщение от Прохожий (??), 14-Апр-24, 07:32 
С библиотеками его медлительность уже не заметна, потому что в оставшихся местах (не покрываемых библиотекой) часто не нужна.
Ответить | Правка | Наверх | Cообщить модератору

243. "В Python добавлен JIT-компилятор"  +/
Сообщение от Ivan7 (ok), 15-Апр-24, 02:14 
Библиотеки в программе обычно делают лишь незначительную часть работы. Это лишь вспомогательный инструмент. Основной алгоритм пишется руками и обычно именно он определяет производительность. Даже между компиляторами С++ может быть большая разница в производительности генерируемого кода. Многое может зависеть от опций компиляции. У некоторых компиляторов С++ есть возможность делать ассемблерные вставки в коде С++. И в этом во всём огромный потенциал увеличения производительности. Да, готовые библиотеки предоставляют определённый функционал, но чаще всего неоптимальны в плане производительности. Короче, те, кто пишет на Питоне, даже не подозревают насколько код может быть быстрый.
Ответить | Правка | Наверх | Cообщить модератору

246. "В Python добавлен JIT-компилятор"  +/
Сообщение от Анонин (?), 30-Апр-24, 16:06 
> Да, готовые библиотеки предоставляют определённый функционал, но чаще всего неоптимальны в плане производительности

доооо, расскажи это авторам numpy, scipy, pandas - ты в жизни не напишешь ничего даже близкого по уровню оптимизации и производительности, тем более на крестах (такие как ты не знают не их, ни других яп, но мнение имеют)

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

139. "В Python добавлен JIT-компилятор"  +2 +/
Сообщение от чатжпт (?), 10-Апр-24, 22:37 
Приходите обсудить этот вопрос когда перестанете null освобождать, т.е. никогда
Ответить | Правка | К родителю #135 | Наверх | Cообщить модератору

146. "В Python добавлен JIT-компилятор"  –1 +/
Сообщение от Ivan7 (ok), 11-Апр-24, 01:24 
Ну что за чушь! От криворукости, рукожопости и слабоумия никакой язык не спасает!
Ответить | Правка | Наверх | Cообщить модератору

236. "В Python добавлен JIT-компилятор"  +/
Сообщение от Прохожий (??), 14-Апр-24, 07:39 
Вот ведь проблема, что за 40 (или уже 50?) лет программисты на Си от всего перечисленного так и не излечились почему-то. И если верить Гуглу с Микрософт ом (а зачем бы им врать), 70% ошибок програми на Си - это некорректная работа с памятью. Именно по этой причине и начали появляться языки с автоматическим управлением памятью.
А так - да, от всех ошибок дёшево не отделаешься с любым языком.
Ответить | Правка | Наверх | Cообщить модератору

244. "В Python добавлен JIT-компилятор"  +/
Сообщение от Ivan7 (ok), 15-Апр-24, 02:32 
> Вот ведь проблема, что за 40 (или уже 50?) лет программисты на
> Си от всего перечисленного так и не излечились почему-то. И если
> верить Гуглу с Микрософт ом (а зачем бы им врать), 70%
> ошибок програми на Си - это некорректная работа с памятью. Именно
> по этой причине и начали появляться языки с автоматическим управлением памятью.

Как всегда, есть дилемма... Указатели на память - это ведь фича Си, а не его недостаток. Это именно то, что приближает его к ассемблеру, позволяя писать на нём очень производительный код даже без привлечения ассемблера, хотя при необходимости в программу на Си/Си++ можно вставлять ассемблерные блоки (прямо блоки или отдельные ассемблерные инструкции, а не вызывать функции на ассемблере! правда не все компиляторы позволяют это делать, но тем не менее...). Языки более высокого уровня вводят абстракции для работы с памятью, что отчасти служит подушкой безопасности, но в то же время лишний контроль неизбежно снижает производительность. Например, в С/С++ мы можем изменить какие-то данные, потом вставить ассемблерную команду, которая изменит эти данные, потом на С/С++ ещё как-то изменить эти данные и т.д. и всё это будет практически бесплатно без каких-либо значимых накладных расходов. Я не знаю другого языка, где подобные трюки были бы возможны. Поэтому да, на С++ и особенно на С нужно быть внимательным и чётко понимать, что делаешь, и лучше понимать, как работает процессор, память и компьютер в целом, т.е. нужна определённая квалификация. Зато, если всё грамотно делать, можно получить очень хорошую производительность достаточно простыми средствами - там, где программам на Питоне нужны дата-центры, взаимосвязь между многими компьютерами и т.п., программе на С/С++ может быть достаточно одного компьютера, и часто даже многопоточные программы не особенно актуальны, т.к. для решения задачи за приемлемое время хватает одного ядра процессора. Неоднократно на собственном опыте с подобным сталкивался. Так что на С/С++ какие-то вещи, возможно, немного сложнее, а какие-то проще и главное - намного проще получить хорошую производительность, причём простыми средствами. Такие вот дела...

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

153. "В Python добавлен JIT-компилятор"  +/
Сообщение от qwe (??), 11-Апр-24, 04:13 
man 3 free: ... If ptr is NULL, no operation is performed.

Смысла в этом не много, но и проблемы нет.

Ответить | Правка | К родителю #139 | Наверх | Cообщить модератору

157. "В Python добавлен JIT-компилятор"  +/
Сообщение от Прадед (?), 11-Апр-24, 05:49 
Ни null а none
Ответить | Правка | К родителю #139 | Наверх | Cообщить модератору

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

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




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

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