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

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

Standalone Coder

Standalone Coder

3 жыл бұрын

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

Пікірлер: 669
@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 отправил вариант на го
@alexelizard1798
@alexelizard1798 3 жыл бұрын
Как всегда великолепная подача. Просто лучший, спасибо
@IgorKorobeinikov
@IgorKorobeinikov 3 жыл бұрын
Ты молодец! Твое cледуещее видео: "python быстрее ассемблера"
@davnoa5958
@davnoa5958 3 жыл бұрын
Какого из?
@argiziont
@argiziont 3 жыл бұрын
Ну да как уже написали, какого именно, и он не может быть быстрее по определению, так как асемблер( к примеру тот же masm) напрямую преображается в язык команд, то есть машинный код а пайтон, с, с++ или любой другой язык высокого уровня ещё как минимум должен пройти доп этапы, так что максимум что можно сделать на питоне, это свой компилятор который сможет с питон кода генерировать код асемблера, но это чушь какая то
@KirillBreuss
@KirillBreuss 3 жыл бұрын
Скорость работы пайтон превышает скорость света и нарушает теорию относительности.) Позволяет писать код самому себе в прошлое..))
@lit1041
@lit1041 3 жыл бұрын
@@argiziont Так лол, все программы в итоге преобразуются в машинный код, вне зависимости от вида языка. Но питон реально медленный, потому что использует, например, сборщик мусора, юзает всякие проверки, везде, где в c++ будут писать не везде, а только в самых нужных местах
@ilyasbegnusupov1599
@ilyasbegnusupov1599 3 жыл бұрын
@@lit1041 он же рофлит...
@ivanek333
@ivanek333 3 жыл бұрын
Видео топ, посмотрел полностью. Как всегда на высоте
@ERROR-yl3un
@ERROR-yl3un 3 жыл бұрын
* моргнул *
@VladKochetov
@VladKochetov 3 жыл бұрын
Огромное спасибо за ролики, для меня выход твоего видео - это праздник
@AlexSeligerX
@AlexSeligerX 3 жыл бұрын
блин, я смотрел на одном дыхании, как боевик, хотя "догадывался" кто победит)) ... хорошо все сделал, в плане оформления, музыки и тд. респект и подписка сразу!
@user-yk2zc8vy6u
@user-yk2zc8vy6u 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
@user-vz3vm8eg3s
@user-vz3vm8eg3s 3 жыл бұрын
Пох, иди учи русский троешьник🤣 Я твой язык знаю, ты мой знай
@VKohai_vk
@VKohai_vk 3 жыл бұрын
@@user-vz3vm8eg3s Русский язык не международный
@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%
@yar3084
@yar3084 3 жыл бұрын
Как всегда интересно подобранная тема! Лайк!
@akshinyolcuyev8729
@akshinyolcuyev8729 3 жыл бұрын
Просто красавец никак не мог найти такое видео в котором все нормально показывает
@user-gs6of5vv6r
@user-gs6of5vv6r 3 жыл бұрын
Очень классное видео. Надеюсь будут видео похожего формата с другими языками например php или java
@merlocsqr3106
@merlocsqr3106 3 жыл бұрын
Очень интересно, спасибо
@notagriffer007
@notagriffer007 3 жыл бұрын
Многопоточность это читерская вещь конечно.
@igoruxa
@igoruxa 3 жыл бұрын
Согласен :)) В С++ тоже можно добавить многопоточность и результат будет кардинально другим :)) Но в любом случае результат Python без многопоточности приятно удивил.
@StandaloneCoder
@StandaloneCoder 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 Выводы: А хз, всё зависит от ситуации и задачи которую Вам надо решить.
@nch2284
@nch2284 3 жыл бұрын
Как всегда очень кратко и доходчиво.
@GoodBoy-hs7pv
@GoodBoy-hs7pv 3 жыл бұрын
Лучший! И ты, и numba. Спасибо!
@yuriusx
@yuriusx 3 жыл бұрын
Спасибос, как всегда лучший)
@olgach3989
@olgach3989 3 жыл бұрын
Котики покорили моё сердце)
@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 8 ай бұрын
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.
@svetlanamarkova7898
@svetlanamarkova7898 3 жыл бұрын
Благодарю, классное видео, python еще больше покоряет!
@php1036
@php1036 2 жыл бұрын
Интересный факт: если использовать while и инкрементировать i вручную, то python станет еще медленнее, ибо в for i in range(n) значение i инкрементируется напрямую в C, а не в питоне.
@softed
@softed Жыл бұрын
Насчет других языков не знаю, но на C++ в функцию можно передавать референс на число (int& num), что значительно ускоряет время исполнения, так как программе не приходиться каждый раз копировать значение в стек.
@PIEIgorEfremenko
@PIEIgorEfremenko 2 жыл бұрын
ВАУ - супер! Спасибо!
@user-fc8ut5ww4v
@user-fc8ut5ww4v 3 жыл бұрын
Ура! Новое видео
@Dukapb81
@Dukapb81 3 жыл бұрын
Красавец!
@parvizhojiev8567
@parvizhojiev8567 3 жыл бұрын
Очень интересно
@StarFury2
@StarFury2 Жыл бұрын
Excellent comparison!
@mrvillst
@mrvillst 3 жыл бұрын
Очень информативное видео
@softwet4341
@softwet4341 3 жыл бұрын
спасибо за видео, очень удивлен результатами
@cina-tech
@cina-tech 3 жыл бұрын
Классная подача материала. Для меня, как гуманитария, технические непонятки замещаются эстетическим удовольствием. Буквально недавно, изучая Пайтон на Сололерне, запнулся о декораторы, интуитивно понимая, что это намного более глубокая тема, чем кажется. И был прав.
@NumFog
@NumFog 3 жыл бұрын
Ничего себе, я думал что медленность python не исправить. Спасибо за видео!
@AnuarLife
@AnuarLife 3 жыл бұрын
Хороший контент!
@akaiddqd1461
@akaiddqd1461 3 жыл бұрын
Хотелось бы увидеть скорость при параллельных вычислениях на всех возможных языках. И по памяти что происходит при этом.
@x-doc
@x-doc 3 жыл бұрын
это я не зря на вас подписался)
@user-bc1ev6ki6m
@user-bc1ev6ki6m 3 жыл бұрын
СПС за видос
@RomanGen1
@RomanGen1 2 жыл бұрын
не подскажете ключи компиляции с++ ? оптимизция включена на -О3 я надеюсь ? не видно ключа в командной строке. это не корректно совершенно
@kirilrotan7653
@kirilrotan7653 3 жыл бұрын
Правда в том что плюсы медленные(особенно на стандартных настройках компилятора), алгоритм для проверки чисел на простоту можно оптимизировать, а многопоточность реализуемая вручную будет более эффективна.
@WinchesterD
@WinchesterD 3 жыл бұрын
Смотрю и мне кажется, что это какая-то магия.
@Danilaboni
@Danilaboni 3 жыл бұрын
Лучший
@mihprog9070
@mihprog9070 3 жыл бұрын
Спасибо.
@_therazereasygame_7871
@_therazereasygame_7871 3 жыл бұрын
Люблю тебя
@dovs96
@dovs96 Жыл бұрын
Тот редкий случай, когда и видос отличный, и комменты прям не хуже, все, что хотел отметить тут уже разобрали по полкам и запилили контента на целый репозиторий. Пушка.
@zikpin
@zikpin 3 жыл бұрын
Нет слов 😲👏👏
@MK-ye9gl
@MK-ye9gl 3 жыл бұрын
Спасибоооо!!!!
@muxriddinabduraxmonov5639
@muxriddinabduraxmonov5639 3 жыл бұрын
Классно видео монтаж 👍👍👍👍
@span4ev
@span4ev 2 жыл бұрын
Для всех, кто раскудахтался про необъективные тесты, и у кого не хватает ума понять в чём суть видео, нужно разжевать и пояснить, что это видео не про то, как питон рвёт другие языки по скорости выполнения всех задач, и не про то, что питон - супер шустрый с Намба, а только про способ ускорения вычислений питона, продемонстрированный на одной конкретной задаче. И только. например. вот такой комментарий: "- Весьма бесмысленное сравнение. Сделайте оптимизацию на плюсах и он порвет питон с потоками или без" наводит на мысль, что у некоторых людей отключилось критическое мышление и демонстрацию ускорения питона они приняли за какое-то соревнование, причём, результаты этого соревнования оказались для них весьма личными и болезненными. Словно фанат с++ обиделся, что питон, который он, очевидно, считает медленным, оказался шустрее его любимого языка. Это всё мои домыслы, конечно, но логики в вышеприведённом комментарии мало, в контексте видео, с его названием: "Ускоряем Python [ JIT Numba ]" а не: "Ха-ха-ха, смотрите, питон - нагибатор сишек. Это самый быстрый язык!" Понятно, что питон медленный, ну и что? У каждого языка есть свои преимущества и недостатки. Для каждой работы есть свой инструмент, или для каждой задачи - свой язык. Питон хорош низким порогом вхождения и приятным синтаксисом, хорош в анализе данных, создании нейросетей, скорости написания кода. И так далее: другие языки хороши для своих задач. Понятно, что с Намба нельзя будет ускорить всё, что можно делать на питоне, и что там должно быть есть и свои недостатки, ну и что? Нужно тебе что-то вычислить на питоне, юзай намбу и экономь время. Чего принимать это так близко к сердцу и словно обижаться на результаты теста, хотя суть была в другом - показать зрителям, как можно ускорить время вычислений. Есть в этом что-то животное - защищать с пеной у рта свои интересы, свои вкусы, свои взгляды, и критиковать чужие.
@LithiumDeuteride-6
@LithiumDeuteride-6 8 ай бұрын
Это старый фокус, чтобы запарить мозги тем, кто не разбирается в работе современных процессоров. А конкретно, процессор занят делениями на около 95%. Причём АМД выполняют деления раза в два медленней интелов, даже кора 2 дуба быстрей райзена 3600, ну по тактам. Для теста надо более сложный код, если теже простые числа, то давайте возьмем алгоритм Аткина. Думаю питухоний обосрётся даже со всеми фичами. И питухоний совсем не простой, и порог вхождения не такой уж маленький, лучше сразу С++ изучать, а до этого С и ассемблер. А питухоний оставить на потом.
@span4ev
@span4ev 8 ай бұрын
@@LithiumDeuteride-6 Порог вхождения не простой? По сравнению с другими ЯП или в общем и целом? До сих пор радуюсь питону, питоню каждый день) Не понимаю аргументов типа: "лучше сразу изучать С++". Уважаемый, а зачем? Я искренне не понимаю, почему лучше (нужно) изучать си? Вот вы отучились, например, на юриста, а вам говорят: лучше сразу учиться на инженера... Вы купили себе пирожок с капустой, а вам говорят: лучше сразу покупать с картошкой. Вы учили английский в школе, а вам: лучше сразу учить китайский. И миллион других примеров... На мой взгляд - это совершенно бесполезные навязывания из плоскости "хочу, чтобы другие делали то же, что и я, потому что считаю свой выбор самым правильным". Почему бы не позволить людям самим решать что им больше нравится и что удобней? В противовес вашему аргументу можно заявить: "лучше сразу питон изучать". Нет продуктивности в таких разговорах. Недавно смотрел видос ""Простой Python": ложь, большая ложь и метаклассы". Да, там действительно есть сложные концепции и сущности, но до этого ещё нужно дойти, но это не делает питон в принципе сложным, а лишь говорит о том, что в нём есть и сложность. Я сейчас программы, которые мне нужны для каких-то задач, делаю сам, что-то такое, что помогает с переводом. Быстро написал, запустил одной кнопкой в текстовом редакторе и выполнил задачу. Мне даже не нужно ничего компилировать, код простой, понятный и удобный. Так вот, если я делаю то, что мне нужно на питоне и делаю это быстро, то зачем, например мне, учить Си? Чтобы угодить сишникам, которые трясут кулаками с криками "СИ!СИ!СИ!" По поводу деления и процов - увы, не в теме. Возможно вы правы. Ну обосрётся питон и что? Язык-то от этого хуже не станет) Странно, что пайтон популярнее Си. Ох уж эти недалёкие люди, не читали ваших аргументов... Бедные, такой х**нёй занимаются, вместо того, чтобы сразу учить си) Это всё смахивает на какую-то враждебность по отношению к другим ЯП или конкретно к питону. Я бы никогда не стал навязывать другим учить что-то другое... Что хочет человек, то пусть и делает со своей жизнью.
@ketoslavaket4477
@ketoslavaket4477 3 жыл бұрын
Ускоряем пайтон до предела! Ну > 1000% это конечно жёстко! Спасибо за Ооооооооочень полезную инфу!
@markfever3637
@markfever3637 3 жыл бұрын
Всё правильно сделано и понятно показано, однозначно ЛАЙК. Но вот использование многопоточности в Python и сравнение с результатами кода которые работали в одном потоке немного не честно.
@artur-lg7wv
@artur-lg7wv 3 жыл бұрын
Просто коммент для продвижения ролика. Автор просто...!!!
@VirtexR
@VirtexR 3 жыл бұрын
а если также сделать что то с кодом из других роликов где компьютерное зрение или 3д движок будет изменения результата?
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
в 3д движке я использовал Numba для ускорения одной функции и повысил фпс в 3 раза, также использовал Numba в создании 3д игры на raycasting, в проекте игра "Жизнь" ускорял функцию и еще в ряде проектов про raytracing и raymarching...
@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 посмотрим, когда на питоне будут писать ПО для самолётов, спутников, и прочих объектов инфраструктуры. Нет, не в ближайшем будущем.
@user-hc3ke1wy1j
@user-hc3ke1wy1j 3 жыл бұрын
А какую прогу ты используешь для голоса в видео
@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 пр асм разработчиков
@fada9238
@fada9238 2 жыл бұрын
Только вот почему, в таком случае, если я делаю запись в файл - алгоритм на Python делает больше записей в секунду, чем C++?
@user-lp3pp9hu7t
@user-lp3pp9hu7t 3 жыл бұрын
Я чутка офигел от увиденного, не ожидал что Python может быть таким быстрым. Лайк автору.
@daniil2704
@daniil2704 2 жыл бұрын
Есть только одно но, указав с++ компилятору один параметр "-O3" - время выполнения программы на с++ в миллион раз сократиться, у меня на планшете (потому что мне лень за пк идти) оно вышло быстрее чем в видео в десятки раз, на планшете! Далеко не на самом мощном.
@LithiumDeuteride-6
@LithiumDeuteride-6 8 ай бұрын
Это старый фокус, чтобы запарить мозги тем, кто не разбирается в работе современных процессоров. А конкретно, процессор занят делениями на около 95%. Причём АМД выполняют деления раза в два медленней интелов, даже кора 2 дуба быстрей райзена 3600, ну по тактам.
@PIEIgorEfremenko
@PIEIgorEfremenko 2 жыл бұрын
хех, прикольная вставочка с танцующей девчонкой 👍
@honeybadger256
@honeybadger256 3 жыл бұрын
Спасибо за помощь! У меня только один вопрос не по теме остался. Как через PyInstaller скомпилировать в exe несколько файлов?
@arshakyessayan4087
@arshakyessayan4087 3 жыл бұрын
Как я помню --onefile выбирая главный файл.
@honeybadger256
@honeybadger256 3 жыл бұрын
@@arshakyessayan4087 спасибо!
@user-ic6jp7je7c
@user-ic6jp7je7c 3 жыл бұрын
С++ тоже можно компилятор настроить под необходимые оптимизации. С# - можно собрать сразу в исполняемый код, не говоря уже что c#9.0 стал быстрее сам по себе в .net5. Это просто фейс палм. Особенно если представить, что они свой пайтон на высоконагруженные сервера не тестили, где часто вкладывают тонны денег ради нанооптимизаций. Очень интересно сравнение в стандартных задачах ООП, обращения в Dictionary (map), Скорей всего работа с памятью в пайтон будет еще медленее. Хайп да и только. Интересно, что питонщики в сторону php8 with JIT скажут, если даже в сравнении с php7 медленее.
@dalexgames549
@dalexgames549 Жыл бұрын
Вот полностью поддерживаю, не говоря уже о доступе к памяти и других низкоуровневых штуках,как можно вообще сравнивать питон и плюсы не понимаю
@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 есть ":="
@user-tm6km3pz2o
@user-tm6km3pz2o 3 жыл бұрын
Что насчёт раскрыть тему использования видеокарты в pygame, если это конечно возможно? Ведь насколько я знаю отрисовка в нём происходит с помощью процессора. Если не прав, ссорян
@user-bw7ov8ip5w
@user-bw7ov8ip5w 3 жыл бұрын
Интересно
@Danilaboni
@Danilaboni 3 жыл бұрын
Не ожидал что буст будет на столько высокий
@v0xl
@v0xl 3 жыл бұрын
Мне показался маловатым. LuaJIT (для Lua) даёт буст 200-5000% (обвчно около 1000%) Numba работает почти так же. Это тоже JIT-компилятор
@user-mx2vr9oj6z
@user-mx2vr9oj6z 3 жыл бұрын
Пипец ты пишешь так плавно и быстро, я тоже хочу когда-нибудь также
@backer01
@backer01 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?
@tentaklegg2692
@tentaklegg2692 3 жыл бұрын
простите за возможно тупейший вопрос но: если намба дает такие бусты, то по какой причине модуль не является штатным в питоне? может не верно выразился, я имею ввиду почему его возможности не используются питоном без плясок с бубном и допиливания кода? (да пускай там пара тройка строк, но всеже)
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
Это тот же вопрос из разряда, почему Numpy до сих пор не включен? Мир не стоит на месте, раньше таких инструментов не было или были малоэффективные. Но на самом деле, чтобы полноценно использовать Numba, все-таки надо придерживаться некоторых правил написания функций (смотрите в документации Numba)
@user-jn2qv1yq9g
@user-jn2qv1yq9g 3 жыл бұрын
Здравствуйте, вы делали видео по raycasting, можете показать как сделать ракетомет просто сам пробовал но не получилось
@user-il3ol1fy4y
@user-il3ol1fy4y 3 жыл бұрын
хорошая идея
@romanbush5164
@romanbush5164 2 жыл бұрын
Это прям магия, какая-то спасибо. Подписался. А плюсы это задни.. )... хоть я и начал их изучать.. А что если совместить namba и pypy ( метод хауди-хо). Прослезился, надо будет обязательно попробовать))))
@IExSet
@IExSet 2 жыл бұрын
А нафига ?
@rustamtermenusmack7165
@rustamtermenusmack7165 3 жыл бұрын
Давай модифицируем 3Д движок с танком
@user-ry2wv8mj9e
@user-ry2wv8mj9e 3 жыл бұрын
В топ
@MrNagumanov
@MrNagumanov 3 жыл бұрын
Где тянку скачать?
@Howidog
@Howidog 3 жыл бұрын
А с чем может быть связано, то что одна и та же программа выполняется за разное время, хотя там не используется рандом или ещё что-то не зависящее от начальных условий?
@YuraSamusenko
@YuraSamusenko 3 жыл бұрын
Это может зависеть от нагружености компа другими прогами
@chel3391
@chel3391 3 жыл бұрын
Зависит от планировщика ОС. Если кратко, то это как часто и на какое время он будет выделять процессор программе
@lEpIvIaKl
@lEpIvIaKl 9 ай бұрын
Тут верно сказали выше, но приведу ещё человеческую примитивную аналогию - возьмём спортсмена, он в одних и тех же условиях, в одном и том же физ. состояние будет пробегать 60 метров - всегда будут различаться результаты на какие-то доли секунды.
@City__Walker
@City__Walker 2 жыл бұрын
А 3д графику он тоже так считать будет при использовании numba?
@StandaloneCoder
@StandaloneCoder 2 жыл бұрын
все что связано с вычислениями Numba выводит по скорости на уровень компилируемых языков. Нумбу можно использовать и в вычислениях на видеокарте - будет еще в разы быстрее, но сложнее реализовать
@LDA144
@LDA144 3 жыл бұрын
спасибо
@MY-nh2xe
@MY-nh2xe 2 жыл бұрын
скажите плес) прога последняя на GPU вычисляет?
@StandaloneCoder
@StandaloneCoder 2 жыл бұрын
cpu
@TiJai34Rus
@TiJai34Rus 3 жыл бұрын
Так, Магия вне Хогвартса строго запрещена) А так спасибо за видео и информацию!
@2plus588
@2plus588 3 жыл бұрын
Мощно, где узнать прожорливость каждых языков в тесте?
@sbo_ro
@sbo_ro 3 жыл бұрын
- Питон лучше чем нормальные языки! - Чем лучше? - Чем нормальные языки!
@user-oe5ok3sj4q
@user-oe5ok3sj4q Жыл бұрын
кек, т.е. Питон не нормальный?
@gilman2056
@gilman2056 Жыл бұрын
Ничесе
@user-ps1qg3sz6d
@user-ps1qg3sz6d 3 жыл бұрын
Апупеть! Это магия какая-то👍
@user-lh7qr9js1c
@user-lh7qr9js1c 3 жыл бұрын
Js на винде заметно медленнее, что если сделать на линуксе ?
@shadowsscripts
@shadowsscripts 3 жыл бұрын
Пожайлуста сделать игру с управлением в Ursina, типа человеском или камерой двигать. Зарание спасибо
@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.
@x-5648
@x-5648 2 жыл бұрын
Мне кажется Пайтон всё-таки создавался для вэб разработки , где скорость в основном зависит от интернет соединения , хотя я скорее всего ошибаюсь или , ладно я не знаю))
@lxt1mm0ral96
@lxt1mm0ral96 2 жыл бұрын
А как ты выучил пайтон?
@segnities5425
@segnities5425 3 жыл бұрын
Можно ли использовать этот метод при создании игр на Python? (сам только начал его учить)
@StandaloneCoder
@StandaloneCoder 3 жыл бұрын
конечно, я уже много раз успешно использовал Numba для создания игр
@segnities5425
@segnities5425 3 жыл бұрын
@@StandaloneCoder спасибо
@user-hc3ke1wy1j
@user-hc3ke1wy1j 3 жыл бұрын
О утебя уже 8к подпищиков
@juyeong7117
@juyeong7117 3 жыл бұрын
Досмотрел видео до конца, хотел поставить лайк... Оказалось, что я его уже поставил после четырех минут просмотра. Жаль, что нельзя поставить больше одного лайка...
@myganter
@myganter 3 жыл бұрын
С шарпом у тебя не корректный тест получился, в clr есть такая фича как jit компиляция, тебе нужно было в холостую вызвать все написанные тобой методы чтобы они откомпилились и сохранились в кеш
@user-ps4ot2pi8h
@user-ps4ot2pi8h 3 жыл бұрын
Тоже было интересно, на сколько питон медленный
@user-ne4bd3ry1n
@user-ne4bd3ry1n 3 жыл бұрын
а где Lua с его luaJIT (прародитель JIT) ?
@user-yu6uc2kw3c
@user-yu6uc2kw3c 3 жыл бұрын
4500u /16gb (jupyter) 260 сек без numba ~0.2 сек с numba Жесть .Интересно ,есть ли минусы ? При параллельном выдает ошибку does not support option: 'parallele
@juga7juga783
@juga7juga783 3 жыл бұрын
ты написал parallele . А надо было parallel
@user-yu6uc2kw3c
@user-yu6uc2kw3c 3 жыл бұрын
@@juga7juga783 Спасибо ,даже не заметил
@alliluiya
@alliluiya 3 жыл бұрын
Вы фриланс заказы делаете?
@user-xh2ji6tb4o
@user-xh2ji6tb4o 3 жыл бұрын
Чего ? У меня нет слов .Я пишу на питоне ,но никогда не парился на счет его скорости ,но ты открыл мне эту прекрасную вещь .
@user-it5ne4ft1l
@user-it5ne4ft1l 3 жыл бұрын
а вы попробуйте C++ с несколькими потоками, если ваш интелект может его перенести(сори если обидел)
@alexanderdimov7329
@alexanderdimov7329 Жыл бұрын
может ты тензоры и нумпай все равно используешь, зачем тебе париться на этот счет..как говорится смотря что делаешь..другие языки вроде не имеют таких выразительных средств работы с тензорами и тд..а если и имеют то все равно куча лишних знаков появляется которые глаза мозолят, самостоятельных выделений памяти и прочей ереси которая не нужна для решения конкретных задач..в конце концов если надо всегда можно либу на си подключить если есть куски кода которые без него не обойдутся
@user-uy2gg8mm6s
@user-uy2gg8mm6s 3 жыл бұрын
numba не ставится, буду юзать жс или плюсы
@Zexus001
@Zexus001 3 ай бұрын
Не зря Кава рекламировал скиллбокс, всё таки он айтишник!
@bohdan9884
@bohdan9884 3 жыл бұрын
Не смотря задам вопрос, питон будут ускорять приимуществом компилтайма? По типу "так же быстр как Си".. ага будет весело
@maxtarasenko1391
@maxtarasenko1391 3 жыл бұрын
Больше анимешных девочек требуют наши сердца
@randomniy_noyneim
@randomniy_noyneim 3 жыл бұрын
Люблю аниме тян)
@user-ex2rh2vc4o
@user-ex2rh2vc4o 3 жыл бұрын
Цой и аниме- зашибись
@user-rp1yn5pu9m
@user-rp1yn5pu9m 3 жыл бұрын
Интересно, а это работает с 3D? Если ты допустим использовал Ursina или Panda3d
@backer01
@backer01 3 жыл бұрын
Нумба не работает с не встроенными классами, поэтому можно будет ускорить только вычисления
Пишу 3D Движок на Python [ Pygame + Numpy ]
21:56
Standalone Coder
Рет қаралды 135 М.
Smart Sigma Kid #funny #sigma #comedy
00:26
CRAZY GREAPA
Рет қаралды 9 МЛН
НРАВИТСЯ ЭТОТ ФОРМАТ??
00:37
МЯТНАЯ ФАНТА
Рет қаралды 2,2 МЛН
Русалка
01:00
История одного вокалиста
Рет қаралды 7 МЛН
Raycasting Game in Python and Pygame
9:07
Data Wizual
Рет қаралды 7 М.
Как устроен Python? ► Детальный разбор
11:05
Хауди Хо™ - Просто о мире IT!
Рет қаралды 580 М.
Делаю нейросеть с нуля
17:17
Onigiri
Рет қаралды 1,4 МЛН
Smart Sigma Kid #funny #sigma #comedy
00:26
CRAZY GREAPA
Рет қаралды 9 МЛН