Python против C++, C#, JS. Ускоряем Python [ JIT Numba ]

  Рет қаралды 81,628

Standalone Coder

Standalone Coder

Күн бұрын

В этом видео проведем испытание, в котором проверим производительность таких языков программирования, как Python (Питон), C++, C# и JavaScript (JS). И в частности, нас будет интересовать насколько язык Python медленнее остальных.
Но также при помощи JIT компилятора Numba проведем ускорение Python, и сравним насколько эффективен такой способ ускорения по отношению к другим языкам.
#standalonecoder

Пікірлер: 670
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
Так как разгорелись жаркие споры по многопоточности, то буду сюда выкладывать результаты испытаний для всех версий, шлите код мне на почту, я проверяю на своем железе - выкладываю. Я заинтересован в объективном тестировании, и мне важны эти результаты. Вот только не надо изменять алгоритм предложенный в видео, проверяем все числа до 10^7 функцией isPrime. Более того, в видеоролике я тестировал языки с включенным захватом экрана, что негативно повлияло на результаты (хотя все языки находились в одинаковых условиях), поэтому я делаю перетест и выкладываю результаты в закрепленном сообщении. Еще важный момент, при использовании Numba в финальное время исполнения программы шло время компиляции функций, что является абсолютно неверным. И чтобы убрать время компиляции функций из общего времени исполнения, то в декоратор @njit добавляем параметр cache=True, тогда функции при первом запуске компилируются, а при следующих запусках используется их скомпилированный код (пока не изменится код функций), так что Numba показывает еще более лучшие результаты. Также выкладываю ссылку на гитхаб для имеющихся языков (файлы в названиях которых есть mp - многопоточные версии программ). github.com/StanislavPetrovV/Programing-Languages-Contest И как всем было интересно, добавлен результат для C++ в 4 потока. Прошу проверить эту версию (на гитхабе) на правильность реализации. Рейтинг (в сек): ~ Python + Numba 1.12 (для Python + Numba без общего рейтинга, информация для справки) 1. C++ MP 0.98 (release mode OpenMP) 2. Си MP 1.04 ( -O2) 3. С# MP 1.19 4. C++ MP 1.35 (release mode обычный MP) 5. JS MP 1.59 6. RUST 2.41 7. C++ 2.71 (release mode) 8. GO MP 3.02 9. C# 3.96 10. JS 4.45 11. GO 8.51 12. Python 43.21Все тесты проходят на CPU i7 4710HQ - у которого максимальная частота в многопоточном режиме 2.5 ГГц (ноутбук 2014 года) И честно сказать, Numba не всегда так просто применить, так как надо соблюдать некоторые правила построения функций (смотрите в документации), но в таком типе задач этот JIT идеально раскрывает свой потенциал.
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
Добавлен новый участник - язык GO, сразу обе версии программы
@stanislav3827
@stanislav3827 3 жыл бұрын
@@StandaloneCoder код на go в примере "go_test[mp].go" не корректный, время выводится раньше чем завершаются все горутины
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
@@stanislav3827 вы можете поправить код и отправить мне на почту? для GO сделаю новый тест
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
Добавлен результат для JS в 4 потока
@stanislav3827
@stanislav3827 3 жыл бұрын
@@StandaloneCoder отправил!
@sladge17
@sladge17 3 жыл бұрын
Хочу отметить некорректность проведенных тестов. При первом тестировании питона, он просто засмотрелся на танцующую тян, поэтому такие низкие показатели скорости вычислений.
@doumasama5654
@doumasama5654 3 жыл бұрын
Да я тоже засмотрелся на Фудзивару
@vailder
@vailder 3 жыл бұрын
@@doumasama5654 На что!?
@doumasama5654
@doumasama5654 3 жыл бұрын
@@vailder вайфу
@doumasama5654
@doumasama5654 3 жыл бұрын
@@nezuke6562 спасибо
@kamikaze5328
@kamikaze5328 3 жыл бұрын
@@nezuke6562 хахахХхахпхчхххОзпхпзазпххахпхпхпххпхпхпаххахахахааххаахпхмхсххпхахпхпхпхах, вайфу это персонаж который тебе нравится
@arise._
@arise._ 3 жыл бұрын
Хорошее сравнение, но неправильно было использовать параллельные вычисления только в питоне. Для чистоты эксперимента надо было и на других языках параллельные вычисления запустить
@ThA891
@ThA891 3 жыл бұрын
Он показал что питон можно спокойно использовать для задач которые раньше писались только на сишки или джаве. Это же очевидно.
@user-bh2ot5ks8f
@user-bh2ot5ks8f 3 жыл бұрын
А вы попробуйте на С++ не меняя код реализовать многопоточность!
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
Я сделаю закрепленное сообщение к этому видео с результатами тестов с многопоточностью для остальных языков, если вы напишите программы для других языков именно для задачи из ролика, скидывайте мне код на почту, я перепроверяю на своем железе и выкладываю результаты. Мне самому очень интересно, как будут обстоять дела с другими языками
@mutniytip2000
@mutniytip2000 3 жыл бұрын
@@StandaloneCoder конкретно эта задача очень хорошо бьётся на потоки, при увеличении нагрузки затраты на создание потоков будут стремиться к нулю, и время можно будет смело делить на количество потоков, это для любого языка общего назначения
@lollopin3362
@lollopin3362 3 жыл бұрын
@@StandaloneCoder отправил вариант на го
@IgorKorobeinikov
@IgorKorobeinikov 3 жыл бұрын
Ты молодец! Твое cледуещее видео: "python быстрее ассемблера"
@davnoa5958
@davnoa5958 3 жыл бұрын
Какого из?
@argiziont
@argiziont 3 жыл бұрын
Ну да как уже написали, какого именно, и он не может быть быстрее по определению, так как асемблер( к примеру тот же masm) напрямую преображается в язык команд, то есть машинный код а пайтон, с, с++ или любой другой язык высокого уровня ещё как минимум должен пройти доп этапы, так что максимум что можно сделать на питоне, это свой компилятор который сможет с питон кода генерировать код асемблера, но это чушь какая то
@KirillBreuss
@KirillBreuss 3 жыл бұрын
Скорость работы пайтон превышает скорость света и нарушает теорию относительности.) Позволяет писать код самому себе в прошлое..))
@lit1041
@lit1041 3 жыл бұрын
@@argiziont Так лол, все программы в итоге преобразуются в машинный код, вне зависимости от вида языка. Но питон реально медленный, потому что использует, например, сборщик мусора, юзает всякие проверки, везде, где в c++ будут писать не везде, а только в самых нужных местах
@ilyasbegnusupov1599
@ilyasbegnusupov1599 3 жыл бұрын
@@lit1041 он же рофлит...
@alexelizard1798
@alexelizard1798 3 жыл бұрын
Как всегда великолепная подача. Просто лучший, спасибо
@neoXXquick
@neoXXquick 3 жыл бұрын
Sorry to write in english, but i dont speak russian.. good stuff man.. i am happy i am using subtitles :) keep a good work
@Махди-т4м
@Махди-т4м 3 жыл бұрын
Пох, иди учи русский троешьник🤣 Я твой язык знаю, ты мой знай
@VKohai_vk
@VKohai_vk 3 жыл бұрын
@@Махди-т4м Русский язык не международный
@IExSet
@IExSet 2 жыл бұрын
@@VKohai_vk К чему ты это написал ?
@last8exile
@last8exile 3 жыл бұрын
В питоне квадратный корень был приведён к типу int для дальнейшего цикла перебора возможных делителей, а в остальных языках оставлен как double. Этим было добавлено в общей сложности 10 000 000 * sqrt (10 000 000) * 0.5 ~= 15 811 388 300 операций сравнения int и double На моём железе: 1) Тест с double var sqrt_Num = Math.Sqrt(num); Занимает 2,62 секунды 2) Тест с int var sqrt_Num = (int)Math.Sqrt(num); Занимает 1,88 секунды Прирост ~29%
@ivanek333
@ivanek333 3 жыл бұрын
Видео топ, посмотрел полностью. Как всегда на высоте
@ERROR-yl3un
@ERROR-yl3un 3 жыл бұрын
* моргнул *
@S3424868
@S3424868 Жыл бұрын
Мне эта тема была актуальна и интересна. Так что взял C# и данный пример в ОП и МП. Тех. условия: i5-7400; 16Gb; .NET6.0 Тело IsPrimal идентично видео, только возвращает 1/0 вместо true/false для проверки количества результатов, типа чтобы ничего не потерялось в МП. Код между измерителями: Линейно (идентично видео): for (int i = 0; i < N; i++) count += IsPrimal(i); Использование класса Parallel int[] results = new int[N]; Parallel.For(0, N, i => results[i] = IsPrimal(i)); count = results.Sum(); Использование PLINQ: count = (int)ParallelEnumerable.Range(0, N).AsParallel().Select(i => { return IsPrimal(i); }).Aggregate((x, y) => x + y); Запускал трижды, среднее при N=10_000_000 (debug/release в миллисекундах): Линейно : 664579 - 3851 / 2664 Parallel : 664579 - 1116 / 0779 PLINQ : 664579 - 1363 / 0908 Выводы: А хз, всё зависит от ситуации и задачи которую Вам надо решить.
@akj7
@akj7 3 жыл бұрын
I know C++, Python and JS and this is what i think: 1. Compile the C++ code with -02 or -03 and if you need more optimization, use more optimization flags like -march. 2. Numba is good and very interesting, until you use Python with really complex functions to the point that Numba can't actually help. Numba also doesn't work with pandas, numpy or other libraries not written in native python. 3. If you are going to compare the other languages to Numba with multithreading, then do the same for other languages too. 4. Python is like a bus. It is slow but cheap and does the job. I hate it when people try to use it everywhere, like in embedded systems or for efficiency related tasks. Edit: If you compile the C++ code with optimization on, it could be that the compiler already calculates the primes at compile time.
@ATtiny13a-PU
@ATtiny13a-PU 2 жыл бұрын
Thank you so much
@math1560
@math1560 2 жыл бұрын
Is it possible to write real desktop applications in Python?
@LithiumDeuteride-6
@LithiumDeuteride-6 10 ай бұрын
This is a focus task, i.e. the algorithm is selected in such a way that its compiler cannot optimize, and processors perform divisions very slowly. Specifically in this task, if you look at the assembly code, division takes about 95% of the total execution time. So, this is not a correct test at all, it misleads many about the speed of Python/C/C++/Assembler.
@AlexSeligerX
@AlexSeligerX 3 жыл бұрын
блин, я смотрел на одном дыхании, как боевик, хотя "догадывался" кто победит)) ... хорошо все сделал, в плане оформления, музыки и тд. респект и подписка сразу!
@user-yk2zc8vy6u
@user-yk2zc8vy6u 3 жыл бұрын
Как всегда шикарная шикордятина За информацию прям гигантское спасибо !
@notagriffer007
@notagriffer007 3 жыл бұрын
Многопоточность это читерская вещь конечно.
@igoruxa
@igoruxa 3 жыл бұрын
Согласен :)) В С++ тоже можно добавить многопоточность и результат будет кардинально другим :)) Но в любом случае результат Python без многопоточности приятно удивил.
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
смотрите закрепленное сообщение под роликом
@VladKochetov
@VladKochetov 3 жыл бұрын
Огромное спасибо за ролики, для меня выход твоего видео - это праздник
@akshinyolcuyev8729
@akshinyolcuyev8729 3 жыл бұрын
Просто красавец никак не мог найти такое видео в котором все нормально показывает
@php1036
@php1036 3 жыл бұрын
Интересный факт: если использовать while и инкрементировать i вручную, то python станет еще медленнее, ибо в for i in range(n) значение i инкрементируется напрямую в C, а не в питоне.
@softed
@softed Жыл бұрын
Насчет других языков не знаю, но на C++ в функцию можно передавать референс на число (int& num), что значительно ускоряет время исполнения, так как программе не приходиться каждый раз копировать значение в стек.
@span4ev
@span4ev 2 жыл бұрын
Для всех, кто раскудахтался про необъективные тесты, и у кого не хватает ума понять в чём суть видео, нужно разжевать и пояснить, что это видео не про то, как питон рвёт другие языки по скорости выполнения всех задач, и не про то, что питон - супер шустрый с Намба, а только про способ ускорения вычислений питона, продемонстрированный на одной конкретной задаче. И только. например. вот такой комментарий: "- Весьма бесмысленное сравнение. Сделайте оптимизацию на плюсах и он порвет питон с потоками или без" наводит на мысль, что у некоторых людей отключилось критическое мышление и демонстрацию ускорения питона они приняли за какое-то соревнование, причём, результаты этого соревнования оказались для них весьма личными и болезненными. Словно фанат с++ обиделся, что питон, который он, очевидно, считает медленным, оказался шустрее его любимого языка. Это всё мои домыслы, конечно, но логики в вышеприведённом комментарии мало, в контексте видео, с его названием: "Ускоряем Python [ JIT Numba ]" а не: "Ха-ха-ха, смотрите, питон - нагибатор сишек. Это самый быстрый язык!" Понятно, что питон медленный, ну и что? У каждого языка есть свои преимущества и недостатки. Для каждой работы есть свой инструмент, или для каждой задачи - свой язык. Питон хорош низким порогом вхождения и приятным синтаксисом, хорош в анализе данных, создании нейросетей, скорости написания кода. И так далее: другие языки хороши для своих задач. Понятно, что с Намба нельзя будет ускорить всё, что можно делать на питоне, и что там должно быть есть и свои недостатки, ну и что? Нужно тебе что-то вычислить на питоне, юзай намбу и экономь время. Чего принимать это так близко к сердцу и словно обижаться на результаты теста, хотя суть была в другом - показать зрителям, как можно ускорить время вычислений. Есть в этом что-то животное - защищать с пеной у рта свои интересы, свои вкусы, свои взгляды, и критиковать чужие.
@LithiumDeuteride-6
@LithiumDeuteride-6 10 ай бұрын
Это старый фокус, чтобы запарить мозги тем, кто не разбирается в работе современных процессоров. А конкретно, процессор занят делениями на около 95%. Причём АМД выполняют деления раза в два медленней интелов, даже кора 2 дуба быстрей райзена 3600, ну по тактам. Для теста надо более сложный код, если теже простые числа, то давайте возьмем алгоритм Аткина. Думаю питухоний обосрётся даже со всеми фичами. И питухоний совсем не простой, и порог вхождения не такой уж маленький, лучше сразу С++ изучать, а до этого С и ассемблер. А питухоний оставить на потом.
@span4ev
@span4ev 10 ай бұрын
@@LithiumDeuteride-6 Порог вхождения не простой? По сравнению с другими ЯП или в общем и целом? До сих пор радуюсь питону, питоню каждый день) Не понимаю аргументов типа: "лучше сразу изучать С++". Уважаемый, а зачем? Я искренне не понимаю, почему лучше (нужно) изучать си? Вот вы отучились, например, на юриста, а вам говорят: лучше сразу учиться на инженера... Вы купили себе пирожок с капустой, а вам говорят: лучше сразу покупать с картошкой. Вы учили английский в школе, а вам: лучше сразу учить китайский. И миллион других примеров... На мой взгляд - это совершенно бесполезные навязывания из плоскости "хочу, чтобы другие делали то же, что и я, потому что считаю свой выбор самым правильным". Почему бы не позволить людям самим решать что им больше нравится и что удобней? В противовес вашему аргументу можно заявить: "лучше сразу питон изучать". Нет продуктивности в таких разговорах. Недавно смотрел видос ""Простой Python": ложь, большая ложь и метаклассы". Да, там действительно есть сложные концепции и сущности, но до этого ещё нужно дойти, но это не делает питон в принципе сложным, а лишь говорит о том, что в нём есть и сложность. Я сейчас программы, которые мне нужны для каких-то задач, делаю сам, что-то такое, что помогает с переводом. Быстро написал, запустил одной кнопкой в текстовом редакторе и выполнил задачу. Мне даже не нужно ничего компилировать, код простой, понятный и удобный. Так вот, если я делаю то, что мне нужно на питоне и делаю это быстро, то зачем, например мне, учить Си? Чтобы угодить сишникам, которые трясут кулаками с криками "СИ!СИ!СИ!" По поводу деления и процов - увы, не в теме. Возможно вы правы. Ну обосрётся питон и что? Язык-то от этого хуже не станет) Странно, что пайтон популярнее Си. Ох уж эти недалёкие люди, не читали ваших аргументов... Бедные, такой х**нёй занимаются, вместо того, чтобы сразу учить си) Это всё смахивает на какую-то враждебность по отношению к другим ЯП или конкретно к питону. Я бы никогда не стал навязывать другим учить что-то другое... Что хочет человек, то пусть и делает со своей жизнью.
@notagriffer007
@notagriffer007 3 жыл бұрын
Выше C++ будет C, а выше C будет только Assembler
@c4llv07e
@c4llv07e 3 жыл бұрын
Ну C примерно равен Ассемблеру, так как код у них не сильно отличается.
@user-py1tb1lt5f
@user-py1tb1lt5f 3 жыл бұрын
@@c4llv07e рофлишь?
@romankocherezhchenko34
@romankocherezhchenko34 3 жыл бұрын
@@user-py1tb1lt5f код сильно отличается, но скорость примерно одинакова так как "компилятор умнее тебя"
@user-py1tb1lt5f
@user-py1tb1lt5f 3 жыл бұрын
@@romankocherezhchenko34 я за синтаксис чисто написал
@igornikolaychuk1795
@igornikolaychuk1795 3 жыл бұрын
Бред. В примере ничего плюсового по факту не использовалось (если не считать вывод в консоль и подсчет времени). Да и современные компиляторы соптимизируют такие алгртмы разы лучше чем 99 пр асм разработчиков
@voron2556
@voron2556 3 жыл бұрын
Аж слезу за с++ пустил >_< Так за него кулачки держал..
@amax8
@amax8 3 жыл бұрын
Не отчаивайся. Это с++ только на одном потоке так гонял
@kirilrotan7653
@kirilrotan7653 3 жыл бұрын
@@amax8 Если внести некоторые изменения в алгоритм то ванильный С обгонит пайтон даже без многопоточности, а возможно если настроить компилятор то и плюсы справятся.
@amax8
@amax8 3 жыл бұрын
@@kirilrotan7653 Согласен, но стоит ли оно того? Уже каждый человек(у которого есть деньги) может позволить себе вычислительное устройство мощнее компьютера 2000-х. Думаю в 15-ом этот язык уже полностью признат как мёртв. Как мне кажется - плюсы следующий язык, который готовиться на тот свет, но при всей котовасии он ещё актуален.
@argiziont
@argiziont 3 жыл бұрын
@@amax8 Да, все же даже после того как кучу дыр компилятора закрыли, все равно 'с++' как наследник 'с' оперирует unsafe кодом, как по мне 'c++' был сделан как "технодемка ООП" по типу, майки такие" Э мы тоже в ООП можем, смотрите", но да при всем уважении, в актуальности он теряет позиции
@canis_mjr
@canis_mjr 3 жыл бұрын
@@amax8 посмотрим, когда на питоне будут писать ПО для самолётов, спутников, и прочих объектов инфраструктуры. Нет, не в ближайшем будущем.
@sbo_ro
@sbo_ro 3 жыл бұрын
- Питон лучше чем нормальные языки! - Чем лучше? - Чем нормальные языки!
@user-oe5ok3sj4q
@user-oe5ok3sj4q 2 жыл бұрын
кек, т.е. Питон не нормальный?
@dovs96
@dovs96 Жыл бұрын
Тот редкий случай, когда и видос отличный, и комменты прям не хуже, все, что хотел отметить тут уже разобрали по полкам и запилили контента на целый репозиторий. Пушка.
@olgach3989
@olgach3989 3 жыл бұрын
Котики покорили моё сердце)
@pavelskorynin949
@pavelskorynin949 3 жыл бұрын
Программы для Python и C++/C# имеют отличие, которое влияет на производительность. Дьявол, как обычно, в мелочах. А именно, в этой строке: for div in range(3, int(math.sqrt(num)) + 1, 2); // Python double sqrt_num = sqrt(double(num)); // C++ double sqrt_num = Math.Sqrt(num); // C# Отличие в том, что для Python границы цикла приводятся к целому числу, а для C++/C# - нет. Правильнее было бы делать так: int sqrt_num = (int)sqrt(double(num)); // C++ int sqrt_num = (int)Math.Sqrt(num); // C# На моём железе для C++ это даёт разницу порядка 30%. Результат может отличаться от компилятора! Я пробовал на g++ (Rev2, Built by MSYS2 project) 9.2.0. Включена опция -O2.
@PEPMESHKAGDE
@PEPMESHKAGDE 9 ай бұрын
бро,ты лучший.все,кто говорят про медленность питона просто не умеют писать.
@user-ic6jp7je7c
@user-ic6jp7je7c 3 жыл бұрын
С++ тоже можно компилятор настроить под необходимые оптимизации. С# - можно собрать сразу в исполняемый код, не говоря уже что c#9.0 стал быстрее сам по себе в .net5. Это просто фейс палм. Особенно если представить, что они свой пайтон на высоконагруженные сервера не тестили, где часто вкладывают тонны денег ради нанооптимизаций. Очень интересно сравнение в стандартных задачах ООП, обращения в Dictionary (map), Скорей всего работа с памятью в пайтон будет еще медленее. Хайп да и только. Интересно, что питонщики в сторону php8 with JIT скажут, если даже в сравнении с php7 медленее.
@dalexgames549
@dalexgames549 Жыл бұрын
Вот полностью поддерживаю, не говоря уже о доступе к памяти и других низкоуровневых штуках,как можно вообще сравнивать питон и плюсы не понимаю
@evgenyye
@evgenyye 3 жыл бұрын
Сравнивать паралельное вычисление с линейным, как жопу с пальцем... кроме того, все это работает только на простых структурах данных. Хотя конечьно тоже хорошо. По сути питоном создаем структуру проги. А на затратном месте пишем dll на с++
@yar3084
@yar3084 3 жыл бұрын
Как всегда интересно подобранная тема! Лайк!
@PIEIgorEfremenko
@PIEIgorEfremenko 2 жыл бұрын
хех, прикольная вставочка с танцующей девчонкой 👍
@ketoslavaket4477
@ketoslavaket4477 3 жыл бұрын
Ускоряем пайтон до предела! Ну > 1000% это конечно жёстко! Спасибо за Ооооооооочень полезную инфу!
@user-ot5iy5es4l
@user-ot5iy5es4l 3 жыл бұрын
Видео ещё раз доказывает что питон скоро будет на первых местах, захотел скорости - импортировал модуль,да и вообще что нибудь захотел -импортировал модуль.:D
@mantrida
@mantrida 3 жыл бұрын
Да и если ничего не захотел - импортировал модуль : )
@Dukapb81
@Dukapb81 3 жыл бұрын
@@mantrida import wantnothing😂
@tablenkov4993
@tablenkov4993 3 жыл бұрын
@@mantrida Импортировал модуль для модуля
@user-ot5iy5es4l
@user-ot5iy5es4l 2 жыл бұрын
@Дарий Это был рофл.Не спорю, у каждого яп своя область применения.
@ВладимирЖуков-ы9е
@ВладимирЖуков-ы9е 3 жыл бұрын
Я чутка офигел от увиденного, не ожидал что Python может быть таким быстрым. Лайк автору.
@daniil2704
@daniil2704 2 жыл бұрын
Есть только одно но, указав с++ компилятору один параметр "-O3" - время выполнения программы на с++ в миллион раз сократиться, у меня на планшете (потому что мне лень за пк идти) оно вышло быстрее чем в видео в десятки раз, на планшете! Далеко не на самом мощном.
@LithiumDeuteride-6
@LithiumDeuteride-6 10 ай бұрын
Это старый фокус, чтобы запарить мозги тем, кто не разбирается в работе современных процессоров. А конкретно, процессор занят делениями на около 95%. Причём АМД выполняют деления раза в два медленней интелов, даже кора 2 дуба быстрей райзена 3600, ну по тактам.
@merlocsqr3106
@merlocsqr3106 3 жыл бұрын
Очень интересно, спасибо
@Danilaboni
@Danilaboni 3 жыл бұрын
Не ожидал что буст будет на столько высокий
@v0xl
@v0xl 3 жыл бұрын
Мне показался маловатым. LuaJIT (для Lua) даёт буст 200-5000% (обвчно около 1000%) Numba работает почти так же. Это тоже JIT-компилятор
@maxtarasenko1391
@maxtarasenko1391 3 жыл бұрын
Больше анимешных девочек требуют наши сердца
@randomniy_noyneim
@randomniy_noyneim 3 жыл бұрын
Люблю аниме тян)
@user-ex2rh2vc4o
@user-ex2rh2vc4o 3 жыл бұрын
Цой и аниме- зашибись
@kirilrotan7653
@kirilrotan7653 3 жыл бұрын
Правда в том что плюсы медленные(особенно на стандартных настройках компилятора), алгоритм для проверки чисел на простоту можно оптимизировать, а многопоточность реализуемая вручную будет более эффективна.
@myganter
@myganter 3 жыл бұрын
С шарпом у тебя не корректный тест получился, в clr есть такая фича как jit компиляция, тебе нужно было в холостую вызвать все написанные тобой методы чтобы они откомпилились и сохранились в кеш
@nikitanikitos7726
@nikitanikitos7726 3 жыл бұрын
Программисты на c++ после видео пошли вешаться :)
@imsippintea4870
@imsippintea4870 3 жыл бұрын
Когда ты кодишь и на Питоне, и на Плюсах: *Обрадовался и повесился*
@tablenkov4993
@tablenkov4993 3 жыл бұрын
@@imsippintea4870 *Обрадовался настолько, что повесился*
@Dmytro-Tsymbaliuk
@Dmytro-Tsymbaliuk 3 жыл бұрын
неа, тесты не объективны
@tablenkov4993
@tablenkov4993 3 жыл бұрын
@@Dmytro-Tsymbaliuk Да, уже давным-давно указали
@Danilaboni
@Danilaboni 3 жыл бұрын
Лучший
@x-5648
@x-5648 2 жыл бұрын
Мне кажется Пайтон всё-таки создавался для вэб разработки , где скорость в основном зависит от интернет соединения , хотя я скорее всего ошибаюсь или , ладно я не знаю))
@nch2284
@nch2284 3 жыл бұрын
Как всегда очень кратко и доходчиво.
@nawakoff2581
@nawakoff2581 3 жыл бұрын
Ну нахрен, никогда бы не подумал, что Пайтон такой слоупок.
@dddd-hb1uo
@dddd-hb1uo 3 жыл бұрын
слоупок твой мозг, а это яп)
@nawakoff2581
@nawakoff2581 3 жыл бұрын
@@dddd-hb1uo держи в курсе
@user-fc8ut5ww4v
@user-fc8ut5ww4v 3 жыл бұрын
Ура! Новое видео
@GoodBoy-hs7pv
@GoodBoy-hs7pv 3 жыл бұрын
Лучший! И ты, и numba. Спасибо!
@juyeong7117
@juyeong7117 3 жыл бұрын
Досмотрел видео до конца, хотел поставить лайк... Оказалось, что я его уже поставил после четырех минут просмотра. Жаль, что нельзя поставить больше одного лайка...
@cina-tech
@cina-tech 3 жыл бұрын
Классная подача материала. Для меня, как гуманитария, технические непонятки замещаются эстетическим удовольствием. Буквально недавно, изучая Пайтон на Сололерне, запнулся о декораторы, интуитивно понимая, что это намного более глубокая тема, чем кажется. И был прав.
@markfever3637
@markfever3637 3 жыл бұрын
Всё правильно сделано и понятно показано, однозначно ЛАЙК. Но вот использование многопоточности в Python и сравнение с результатами кода которые работали в одном потоке немного не честно.
@stanislavsh6582
@stanislavsh6582 2 жыл бұрын
C С++ можно было дрбиться и лучшей скорости, настроив использование векторизации при компиляции, плюс учитывая что программа чисто тестовая и должна на одном железе работать - включив эти самые оптимизации под нужное железо . В общем, поигравшись с флагами компиляции на С++ можно было еще раза в 2 точно ускорить, и это при одном потоке. Если прикрутить как раз многопоток - вообще страшные вещи бы начали происходить.
@Zexus001
@Zexus001 5 ай бұрын
Не зря Кава рекламировал скиллбокс, всё таки он айтишник!
@PIEIgorEfremenko
@PIEIgorEfremenko 2 жыл бұрын
ВАУ - супер! Спасибо!
@user-hn3hj7ux6z
@user-hn3hj7ux6z 3 жыл бұрын
Многопоточность использовал только на питоне , браво 🤣🤣🤣🤣
@svetlanamarkova7898
@svetlanamarkova7898 3 жыл бұрын
Благодарю, классное видео, python еще больше покоряет!
@alexandryuschenko3334
@alexandryuschenko3334 2 жыл бұрын
Супер мега хорош)))) Не поставил О2 при компиляции, так еще распаралеллил путон + ты используешь простые числа в программе возможно он их оптимизировал, сложные объекты при компиляции в питоне будут выглядеть как PyObject, которые выделяются на кучи каждый раз, и мусоросборщик тоже никуда не делся. А так, да, любой jit для интерпретируемых языков musthave, лучший пример это v8.
@artur-lg7wv
@artur-lg7wv 3 жыл бұрын
Просто коммент для продвижения ролика. Автор просто...!!!
@NumFog
@NumFog 3 жыл бұрын
Ничего себе, я думал что медленность python не исправить. Спасибо за видео!
@yuriusx
@yuriusx 3 жыл бұрын
Спасибос, как всегда лучший)
@cachatt
@cachatt 3 жыл бұрын
А что на счёт реализации pypy? И можно ли скрестить pypy и numba?
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
pypy поддерживает версию Python только 3.7
@cachatt
@cachatt 3 жыл бұрын
@@StandaloneCoder а тебе прям так нужны фишки из 3.8? Учитывая, что у тебя установлен 3.8.6, когда есть 3.9 последняя версия компилятора - не самая важная вещь, и жили же как-то когда только 3.7 питон был.
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
дело не в этом, pypy медленнее Numba, только Cython примерно по уровню с Numba, но его использовать не так удобно
@IgorKorobeinikov
@IgorKorobeinikov 3 жыл бұрын
@@StandaloneCoder pypy написан на python =)
@c4llv07e
@c4llv07e 3 жыл бұрын
@@cachatt Но ведь.. но ведь в Python 3.8 есть ":="
@igornikolaychuk1795
@igornikolaychuk1795 3 жыл бұрын
C++ компилировался без оптимизации (-О0 по дефолту), в то же время в релизе продукты собирают с макс оптимизацией по времени выполнения (-О3), плюсы бы еще в раза два-три быстрее отработали
@user-gs6of5vv6r
@user-gs6of5vv6r 3 жыл бұрын
Очень классное видео. Надеюсь будут видео похожего формата с другими языками например php или java
@sevakvart1111
@sevakvart1111 3 жыл бұрын
У меня такое впечатление, что я какой-то фантастический фильм посмотрел, оторваться не мог, 5++, не зря я выбрал Питон. У вас случайно не намечаются курсы или в частном консультации?
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
Благодарю, я могу дать рекомендации из своего опыта, общий план эффективного изучения, обучения. Пишите на почту (она в разделе - о канале)
@Konstantin_Baranoff
@Konstantin_Baranoff 3 жыл бұрын
А может запилить видос на эту тему? Так не надо будет 10000 писем отправлять, да и я уверен это будет капецки интересно и полезно всем кто начинает.
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
@@Konstantin_Baranoff Да, я как раз задумался об этом...
@sevakvart1111
@sevakvart1111 3 жыл бұрын
@@Konstantin_Baranoff это надо автору решение принимать, а так конечно поддерживаю предложение, по крайней мере было бы от чего исходить
@Konstantin_Baranoff
@Konstantin_Baranoff 3 жыл бұрын
@@StandaloneCoder С нетерпением ожидаем. А пока: дальше ломать голову об непробиваемые объяснения на stepike...
@forgemest1822
@forgemest1822 3 жыл бұрын
Круто. А для Ruby есть такой ускоряющий компилятор?
@qwerty_zvnt
@qwerty_zvnt 3 жыл бұрын
При выполнении скрипта интерпретатору укажите аргумент --jit
@StarFury2
@StarFury2 Жыл бұрын
Excellent comparison!
@parvizhojiev8567
@parvizhojiev8567 3 жыл бұрын
Очень интересно
@softwet4341
@softwet4341 3 жыл бұрын
спасибо за видео, очень удивлен результатами
@mihprog9070
@mihprog9070 3 жыл бұрын
Спасибо.
@ИванЕремеев-ы3р
@ИванЕремеев-ы3р 3 жыл бұрын
Пипец ты пишешь так плавно и быстро, я тоже хочу когда-нибудь также
@backer01
@backer01 3 жыл бұрын
Он же ускорил на монтаже всё)
@WinchesterD
@WinchesterD 3 жыл бұрын
Смотрю и мне кажется, что это какая-то магия.
@artloser1772
@artloser1772 3 жыл бұрын
Бро, ещё ты можешь когда компилируешь С/С++ выставить параметры оптимизации. Скорость ещё сильнее вырастет. (Флаги для gcc/g++: -O0 -O1 -O2 -O3 -Os -Ofast)
@mrvillst
@mrvillst 3 жыл бұрын
Очень информативное видео
@rustamtermenusmack7165
@rustamtermenusmack7165 3 жыл бұрын
Давай модифицируем 3Д движок с танком
@Рома-з9б
@Рома-з9б 3 жыл бұрын
В топ
@gamehamster9379
@gamehamster9379 3 жыл бұрын
Я вот учу питон, еще конечно не джун, ооп выучил и функциональный стиль изучаю, но очень интересно смотреть твои видео по питону, что то новое узнаю
@user-it5ne4ft1l
@user-it5ne4ft1l 3 жыл бұрын
я, честно, первый раз вижу человека изучающего python как первый язык🤔
@gamehamster9379
@gamehamster9379 3 жыл бұрын
@@user-it5ne4ft1l ну я его изучаю как основной. В школе нас учили паскалю, а в техникуме с, с++ и с#
@user-it5ne4ft1l
@user-it5ne4ft1l 3 жыл бұрын
@@gamehamster9379я например начинал с ассемблера, и сейчас часто на нём пишу
@backer01
@backer01 2 жыл бұрын
@@user-it5ne4ft1l его много кто первым учит
@seekyboi23
@seekyboi23 Жыл бұрын
@@user-it5ne4ft1l x86-64?
@losiu998
@losiu998 3 жыл бұрын
Why did you compare parallel python program to single thread ones in the other languages? That's nonsense.
@arshakyessayan4087
@arshakyessayan4087 3 жыл бұрын
prange использовать было неправильно, потому что оно использует несколько ядер / потоков, а другие языки не использовали многопоточность.
@romanbush5164
@romanbush5164 3 жыл бұрын
Это прям магия, какая-то спасибо. Подписался. А плюсы это задни.. )... хоть я и начал их изучать.. А что если совместить namba и pypy ( метод хауди-хо). Прослезился, надо будет обязательно попробовать))))
@IExSet
@IExSet 2 жыл бұрын
А нафига ?
@user-xh2ji6tb4o
@user-xh2ji6tb4o 3 жыл бұрын
Чего ? У меня нет слов .Я пишу на питоне ,но никогда не парился на счет его скорости ,но ты открыл мне эту прекрасную вещь .
@user-it5ne4ft1l
@user-it5ne4ft1l 3 жыл бұрын
а вы попробуйте C++ с несколькими потоками, если ваш интелект может его перенести(сори если обидел)
@alexanderdimov7329
@alexanderdimov7329 Жыл бұрын
может ты тензоры и нумпай все равно используешь, зачем тебе париться на этот счет..как говорится смотря что делаешь..другие языки вроде не имеют таких выразительных средств работы с тензорами и тд..а если и имеют то все равно куча лишних знаков появляется которые глаза мозолят, самостоятельных выделений памяти и прочей ереси которая не нужна для решения конкретных задач..в конце концов если надо всегда можно либу на си подключить если есть куски кода которые без него не обойдутся
@akaiddqd1461
@akaiddqd1461 3 жыл бұрын
Хотелось бы увидеть скорость при параллельных вычислениях на всех возможных языках. И по памяти что происходит при этом.
@nickplaygames2744
@nickplaygames2744 3 жыл бұрын
C++: Ха-ха, я самый быстрый язык Питон: вы думали я вас не переиграю, я вас не уничтожу? Я вас уничтожу
@frantzfoxengton7394
@frantzfoxengton7394 3 жыл бұрын
С++, С# и JS имеют свои плюшки с многопоточностью. Требуем проведение новых тестов.
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
@@frantzfoxengton7394 смотрите закрепленное сообщение под роликом
@WhoLeb7
@WhoLeb7 3 жыл бұрын
в релизе (нормальный режим С++) скорость этой программы 0.033
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
@@WhoLeb7 вышлите на почту ваш код, и подробности как запускали в релизе, я перепроверю
@user-tx3hy5ly7i
@user-tx3hy5ly7i 3 жыл бұрын
@@WhoLeb7 в релизе - имеешь ввиду скомпилированный исполняемый? Или ты про что?)
@stashmm
@stashmm 3 жыл бұрын
эх, помню когда тут было 147 подписчиков
@hallsot
@hallsot 3 жыл бұрын
++ тупо случайно наткнулся на его канал
@x-doc
@x-doc 3 жыл бұрын
это я не зря на вас подписался)
@ПетроЦабак
@ПетроЦабак 3 жыл бұрын
СПС за видос
@ВладиславПростяков
@ВладиславПростяков 11 ай бұрын
Никогда бы не подумал что js такой быстрый😂
@LithiumDeuteride-6
@LithiumDeuteride-6 10 ай бұрын
Надо ещё вывод количества простых чисел сделать, а то вдруг что-то пошло не так и результат неправильный. У меня такое было, оптимизировал, оптимизировал и сломал код, результат неверный, откат к старому коду, пусть и медленный но рабочий. И ещё, оказывается АМД точней райзен, делает деление раза в два медленней интела, так что для поиска простых чисел лучше отказаться от алгоритмов использующие деление, можно например использовать алгоритм Аткина.
@TrueErr
@TrueErr 3 жыл бұрын
Можно ли как-то ускорить язык программирования C++
@arshakyessayan4087
@arshakyessayan4087 3 жыл бұрын
Используй библиотеку thread или pthread, но её можно использовать не всегда.
@stashmm
@stashmm 3 жыл бұрын
@A K на байткод переходить смысла нет, нужно сразу на жестком диске нацарапать программу ногтем
@maxtarasenko1391
@maxtarasenko1391 3 жыл бұрын
@@stashmm нет, жёсткие диски слишком медленные, лучше кидать отрицательные заряды в ячейки flash memory
@andg4512
@andg4512 3 жыл бұрын
@@maxtarasenko1391 И не просто кидать, а разгонять в коллайдере )
@user-ot5iy5es4l
@user-ot5iy5es4l 3 жыл бұрын
@A K а потом на транзисторы
@SuperWolchara
@SuperWolchara 3 жыл бұрын
Так параллельное вычисление можно на других языках сделать тогда какие же будут там значения? Тест не полный 😁
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
Я только за! Если хотите, то сделайте многопоточность на других языках, пришлите мне на почту код программы, я проверяю на том же железе и делаю здесь закрепленное сообщение с результатами тестов
@SuperWolchara
@SuperWolchara 3 жыл бұрын
@@StandaloneCoder C# запилю, С++ не очень нравится
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
@@SuperWolchara Если сделаете, то пишите на почту (она в разделе - о канале)
@SuperWolchara
@SuperWolchara 3 жыл бұрын
@@StandaloneCoder просто я к чему все это раз задачи параллельны то main может завершиться раньше чем закончатся все параллельные задачи? Типа время отобразит работу цикла, а не завершения всех задач. Я конечно не знаю как это работает под капотом у питона, но вот в си# прежде чем останавливать таймер нужно знать что все задачи завершились там для этого есть коллекция тасков для этого.
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
@@SuperWolchara вы правы, в Python есть отдельный модуль multiprocessing где надо получить результат от каждого процесса, а в данном случае параллельные вычисления идут готовые из коробки, где уже все это реализовано.
@voidptr_t
@voidptr_t Жыл бұрын
В плюсах следовало использовать кленг, у него оптимизации лучше. И так же стоило писать на современных плюсах. Какой тогда получился бы рантайм? 0, на моменте компиляции это всё прощиталось бы
@mutniytip2000
@mutniytip2000 3 жыл бұрын
Если вы хотите сравнивать языки в многопоточном тесте, то и для Пайтона следует написать программу с нормальным многопотоком
@RomanGen1
@RomanGen1 2 жыл бұрын
не подскажете ключи компиляции с++ ? оптимизция включена на -О3 я надеюсь ? не видно ключа в командной строке. это не корректно совершенно
@user-xw3lf2vd6d
@user-xw3lf2vd6d 7 ай бұрын
Питон с циклами работает не просто плохо а непредсказуемо плохо. Разное наполнение цикла может очень по разному влиять на скорость работы цикла. Для корректной оценки языков разного типа нужно писать для каждого языка алгоритм оптимизированный именно под этот язык. Например с питоном даже без намбы можно было бы использовать numpy и результат был бы очень другим
@user-wp3cm1pt8h
@user-wp3cm1pt8h 2 жыл бұрын
2:45 Вы в танцах!
@Akasa_Lust
@Akasa_Lust 3 жыл бұрын
Ух пич0т. Пила против молотка, отвёртки, рубанка [ ЧПУ Станок ]
@gilman2056
@gilman2056 Жыл бұрын
Ничесе
@muxriddinabduraxmonov5639
@muxriddinabduraxmonov5639 3 жыл бұрын
Классно видео монтаж 👍👍👍👍
@Twentin
@Twentin Жыл бұрын
сегодня мы ускорим жигуль до скорости ламбы, для начало нам надо поставить на жигуль мотор от ламбы и молотком сделать жигуль более аеродинамическую
@vilture5706
@vilture5706 12 күн бұрын
Нельзя написать код быстрее С++, ведь если нужна скорость, то в отладчике открываем ассемблер и исправляем функцию так, чтобы не было лишних команд.
@zikpin
@zikpin 3 жыл бұрын
Нет слов 😲👏👏
@AnuarLife
@AnuarLife 3 жыл бұрын
Хороший контент!
@mutniytip2000
@mutniytip2000 3 жыл бұрын
При компиляции C++ не использовались флаги оптимизации компилятора
@functionalcpp
@functionalcpp 3 жыл бұрын
Что критично. В итоге параллельная реализация на JIT-скомпилированном питоне оказалась в два раза быстрее однопоточной на С++ без оптимизаций. Мдя.
@homelessgod2145
@homelessgod2145 3 жыл бұрын
прикольно, мультилайк
@bro_fedka3951
@bro_fedka3951 3 жыл бұрын
Здравствуйте, мне хотелось бы подкинуть идею для нового ролика ... Pygame может обрисовывать растровые изображения, но можно ли сделать движок, который будет выводить простые векторные картинки например *.svg (простые фигуры: пути, линии, полигоны, круги, прямоугольники)
@bro_fedka3951
@bro_fedka3951 3 жыл бұрын
Мне просто интересно... Что будет быстрее отрисовывается ? Векторное изображение или же то же самое изображение переведённое в растровый формат ?
@GenSakh
@GenSakh 3 жыл бұрын
prange не всегда полезен, иногда он может быть вреден, то есть, замедлять. Всё зависит от процессора. Мой средний показатель без примочек 1.92 секунд. С аннотацией @njit 0.10 секунд. А вот с prange положение ухудшается 0.21 секунд. amd ryzen 9 5900x
Python Быстрее чем Си?! Ускоряем Python До Максимума!
15:22
Псевдо Программист
Рет қаралды 20 М.
这三姐弟太会藏了!#小丑#天使#路飞#家庭#搞笑
00:24
家庭搞笑日记
Рет қаралды 122 МЛН
Angry Sigma Dog 🤣🤣 Aayush #momson #memes #funny #comedy
00:16
ASquare Crew
Рет қаралды 50 МЛН
I Took a LUNCHBAR OFF A Poster 🤯 #shorts
00:17
Wian
Рет қаралды 17 МЛН
Incredible Dog Rescues Kittens from Bus - Inspiring Story #shorts
00:18
Fabiosa Best Lifehacks
Рет қаралды 40 МЛН
Python VS С# | Согласен / Не согласен
14:27
Технологии в Контуре
Рет қаралды 8 М.
Что выбрать в 2022 году: C# или Python?
28:27
Sergey Nemchinskiy
Рет қаралды 226 М.
Пишу 3D Движок на Python [ Pygame + Numpy ]
21:56
Standalone Coder
Рет қаралды 136 М.
这三姐弟太会藏了!#小丑#天使#路飞#家庭#搞笑
00:24
家庭搞笑日记
Рет қаралды 122 МЛН