Тёмный

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

Standalone Coder
Подписаться 31 тыс.
Просмотров 80 тыс.
50% 1

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

Опубликовано:

 

21 ноя 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 675   
@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) напрямую преображается в язык команд, то есть машинный код а пайтон, с, с++ или любой другой язык высокого уровня ещё как минимум должен пройти доп этапы, так что максимум что можно сделать на питоне, это свой компилятор который сможет с питон кода генерировать код асемблера, но это чушь какая то
@user-tv7kg9vy7u
@user-tv7kg9vy7u 3 года назад
Скорость работы пайтон превышает скорость света и нарушает теорию относительности.) Позволяет писать код самому себе в прошлое..))
@lit1041
@lit1041 3 года назад
@@argiziont Так лол, все программы в итоге преобразуются в машинный код, вне зависимости от вида языка. Но питон реально медленный, потому что использует, например, сборщик мусора, юзает всякие проверки, везде, где в c++ будут писать не везде, а только в самых нужных местах
@ilyasbegnusupov1599
@ilyasbegnusupov1599 3 года назад
@@lit1041 он же рофлит...
@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%
@alexelizard1798
@alexelizard1798 3 года назад
Как всегда великолепная подача. Просто лучший, спасибо
@VladKochetov
@VladKochetov 3 года назад
Огромное спасибо за ролики, для меня выход твоего видео - это праздник
@AlexSeligerX
@AlexSeligerX 3 года назад
блин, я смотрел на одном дыхании, как боевик, хотя "догадывался" кто победит)) ... хорошо все сделал, в плане оформления, музыки и тд. респект и подписка сразу!
@notagriffer007
@notagriffer007 3 года назад
Многопоточность это читерская вещь конечно.
@igoruxa
@igoruxa 3 года назад
Согласен :)) В С++ тоже можно добавить многопоточность и результат будет кардинально другим :)) Но в любом случае результат Python без многопоточности приятно удивил.
@StandaloneCoder
@StandaloneCoder 3 года назад
смотрите закрепленное сообщение под роликом
@ivanek333
@ivanek333 3 года назад
Видео топ, посмотрел полностью. Как всегда на высоте
@ERROR-yl3un
@ERROR-yl3un 3 года назад
* моргнул *
@user-yk2zc8vy6u
@user-yk2zc8vy6u 3 года назад
Как всегда шикарная шикордятина За информацию прям гигантское спасибо !
@yar3084
@yar3084 3 года назад
Как всегда интересно подобранная тема! Лайк!
@akshinyolcuyev8729
@akshinyolcuyev8729 3 года назад
Просто красавец никак не мог найти такое видео в котором все нормально показывает
@nch2284
@nch2284 3 года назад
Как всегда очень кратко и доходчиво.
@merlocsqr3106
@merlocsqr3106 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 6 месяцев назад
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.
@softed
@softed Год назад
Насчет других языков не знаю, но на C++ в функцию можно передавать референс на число (int& num), что значительно ускоряет время исполнения, так как программе не приходиться каждый раз копировать значение в стек.
@user-gs6of5vv6r
@user-gs6of5vv6r 3 года назад
Очень классное видео. Надеюсь будут видео похожего формата с другими языками например php или java
@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 Выводы: А хз, всё зависит от ситуации и задачи которую Вам надо решить.
@yuriusx
@yuriusx 3 года назад
Спасибос, как всегда лучший)
@php1036
@php1036 2 года назад
Интересный факт: если использовать while и инкрементировать i вручную, то python станет еще медленнее, ибо в for i in range(n) значение i инкрементируется напрямую в C, а не в питоне.
@GoodBoy-hs7pv
@GoodBoy-hs7pv 3 года назад
Лучший! И ты, и numba. Спасибо!
@span4ev
@span4ev 2 года назад
Для всех, кто раскудахтался про необъективные тесты, и у кого не хватает ума понять в чём суть видео, нужно разжевать и пояснить, что это видео не про то, как питон рвёт другие языки по скорости выполнения всех задач, и не про то, что питон - супер шустрый с Намба, а только про способ ускорения вычислений питона, продемонстрированный на одной конкретной задаче. И только. например. вот такой комментарий: "- Весьма бесмысленное сравнение. Сделайте оптимизацию на плюсах и он порвет питон с потоками или без" наводит на мысль, что у некоторых людей отключилось критическое мышление и демонстрацию ускорения питона они приняли за какое-то соревнование, причём, результаты этого соревнования оказались для них весьма личными и болезненными. Словно фанат с++ обиделся, что питон, который он, очевидно, считает медленным, оказался шустрее его любимого языка. Это всё мои домыслы, конечно, но логики в вышеприведённом комментарии мало, в контексте видео, с его названием: "Ускоряем Python [ JIT Numba ]" а не: "Ха-ха-ха, смотрите, питон - нагибатор сишек. Это самый быстрый язык!" Понятно, что питон медленный, ну и что? У каждого языка есть свои преимущества и недостатки. Для каждой работы есть свой инструмент, или для каждой задачи - свой язык. Питон хорош низким порогом вхождения и приятным синтаксисом, хорош в анализе данных, создании нейросетей, скорости написания кода. И так далее: другие языки хороши для своих задач. Понятно, что с Намба нельзя будет ускорить всё, что можно делать на питоне, и что там должно быть есть и свои недостатки, ну и что? Нужно тебе что-то вычислить на питоне, юзай намбу и экономь время. Чего принимать это так близко к сердцу и словно обижаться на результаты теста, хотя суть была в другом - показать зрителям, как можно ускорить время вычислений. Есть в этом что-то животное - защищать с пеной у рта свои интересы, свои вкусы, свои взгляды, и критиковать чужие.
@LithiumDeuteride-6
@LithiumDeuteride-6 6 месяцев назад
Это старый фокус, чтобы запарить мозги тем, кто не разбирается в работе современных процессоров. А конкретно, процессор занят делениями на около 95%. Причём АМД выполняют деления раза в два медленней интелов, даже кора 2 дуба быстрей райзена 3600, ну по тактам. Для теста надо более сложный код, если теже простые числа, то давайте возьмем алгоритм Аткина. Думаю питухоний обосрётся даже со всеми фичами. И питухоний совсем не простой, и порог вхождения не такой уж маленький, лучше сразу С++ изучать, а до этого С и ассемблер. А питухоний оставить на потом.
@span4ev
@span4ev 6 месяцев назад
@@LithiumDeuteride-6 Порог вхождения не простой? По сравнению с другими ЯП или в общем и целом? До сих пор радуюсь питону, питоню каждый день) Не понимаю аргументов типа: "лучше сразу изучать С++". Уважаемый, а зачем? Я искренне не понимаю, почему лучше (нужно) изучать си? Вот вы отучились, например, на юриста, а вам говорят: лучше сразу учиться на инженера... Вы купили себе пирожок с капустой, а вам говорят: лучше сразу покупать с картошкой. Вы учили английский в школе, а вам: лучше сразу учить китайский. И миллион других примеров... На мой взгляд - это совершенно бесполезные навязывания из плоскости "хочу, чтобы другие делали то же, что и я, потому что считаю свой выбор самым правильным". Почему бы не позволить людям самим решать что им больше нравится и что удобней? В противовес вашему аргументу можно заявить: "лучше сразу питон изучать". Нет продуктивности в таких разговорах. Недавно смотрел видос ""Простой Python": ложь, большая ложь и метаклассы". Да, там действительно есть сложные концепции и сущности, но до этого ещё нужно дойти, но это не делает питон в принципе сложным, а лишь говорит о том, что в нём есть и сложность. Я сейчас программы, которые мне нужны для каких-то задач, делаю сам, что-то такое, что помогает с переводом. Быстро написал, запустил одной кнопкой в текстовом редакторе и выполнил задачу. Мне даже не нужно ничего компилировать, код простой, понятный и удобный. Так вот, если я делаю то, что мне нужно на питоне и делаю это быстро, то зачем, например мне, учить Си? Чтобы угодить сишникам, которые трясут кулаками с криками "СИ!СИ!СИ!" По поводу деления и процов - увы, не в теме. Возможно вы правы. Ну обосрётся питон и что? Язык-то от этого хуже не станет) Странно, что пайтон популярнее Си. Ох уж эти недалёкие люди, не читали ваших аргументов... Бедные, такой х**нёй занимаются, вместо того, чтобы сразу учить си) Это всё смахивает на какую-то враждебность по отношению к другим ЯП или конкретно к питону. Я бы никогда не стал навязывать другим учить что-то другое... Что хочет человек, то пусть и делает со своей жизнью.
@olgach3989
@olgach3989 3 года назад
Котики покорили моё сердце)
@cina-tech
@cina-tech 3 года назад
Классная подача материала. Для меня, как гуманитария, технические непонятки замещаются эстетическим удовольствием. Буквально недавно, изучая Пайтон на Сололерне, запнулся о декораторы, интуитивно понимая, что это намного более глубокая тема, чем кажется. И был прав.
@svetlanamarkova7898
@svetlanamarkova7898 3 года назад
Благодарю, классное видео, python еще больше покоряет!
@akaiddqd1461
@akaiddqd1461 3 года назад
Хотелось бы увидеть скорость при параллельных вычислениях на всех возможных языках. И по памяти что происходит при этом.
@PIEIgorEfremenko
@PIEIgorEfremenko 2 года назад
ВАУ - супер! Спасибо!
@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 Год назад
@@VKohai_vk К чему ты это написал ?
@RomanGen1
@RomanGen1 2 года назад
не подскажете ключи компиляции с++ ? оптимизция включена на -О3 я надеюсь ? не видно ключа в командной строке. это не корректно совершенно
@StarFury2
@StarFury2 Год назад
Excellent comparison!
@NumFog
@NumFog 3 года назад
Ничего себе, я думал что медленность python не исправить. Спасибо за видео!
@softwet4341
@softwet4341 2 года назад
спасибо за видео, очень удивлен результатами
@dovs96
@dovs96 Год назад
Тот редкий случай, когда и видос отличный, и комменты прям не хуже, все, что хотел отметить тут уже разобрали по полкам и запилили контента на целый репозиторий. Пушка.
@kirilrotan7653
@kirilrotan7653 3 года назад
Правда в том что плюсы медленные(особенно на стандартных настройках компилятора), алгоритм для проверки чисел на простоту можно оптимизировать, а многопоточность реализуемая вручную будет более эффективна.
@mrvillst
@mrvillst 3 года назад
Очень информативное видео
@honeybadger256
@honeybadger256 3 года назад
Спасибо за помощь! У меня только один вопрос не по теме остался. Как через PyInstaller скомпилировать в exe несколько файлов?
@arshakyessayan4087
@arshakyessayan4087 3 года назад
Как я помню --onefile выбирая главный файл.
@honeybadger256
@honeybadger256 3 года назад
@@arshakyessayan4087 спасибо!
@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 пр асм разработчиков
@user-tm6km3pz2o
@user-tm6km3pz2o 3 года назад
Что насчёт раскрыть тему использования видеокарты в pygame, если это конечно возможно? Ведь насколько я знаю отрисовка в нём происходит с помощью процессора. Если не прав, ссорян
@user-fc8ut5ww4v
@user-fc8ut5ww4v 3 года назад
Ура! Новое видео
@parvizhojiev8567
@parvizhojiev8567 3 года назад
Очень интересно
@tentaklegg2692
@tentaklegg2692 3 года назад
простите за возможно тупейший вопрос но: если намба дает такие бусты, то по какой причине модуль не является штатным в питоне? может не верно выразился, я имею ввиду почему его возможности не используются питоном без плясок с бубном и допиливания кода? (да пускай там пара тройка строк, но всеже)
@StandaloneCoder
@StandaloneCoder 3 года назад
Это тот же вопрос из разряда, почему Numpy до сих пор не включен? Мир не стоит на месте, раньше таких инструментов не было или были малоэффективные. Но на самом деле, чтобы полноценно использовать Numba, все-таки надо придерживаться некоторых правил написания функций (смотрите в документации Numba)
@x-doc
@x-doc 3 года назад
это я не зря на вас подписался)
@ketoslavaket4477
@ketoslavaket4477 3 года назад
Ускоряем пайтон до предела! Ну > 1000% это конечно жёстко! Спасибо за Ооооооооочень полезную инфу!
@Dukapb81
@Dukapb81 3 года назад
Красавец!
@2plus588
@2plus588 3 года назад
Мощно, где узнать прожорливость каждых языков в тесте?
@user-hc3ke1wy1j
@user-hc3ke1wy1j 3 года назад
А какую прогу ты используешь для голоса в видео
@AnuarLife
@AnuarLife 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 есть ":="
@VirtexR
@VirtexR 3 года назад
а если также сделать что то с кодом из других роликов где компьютерное зрение или 3д движок будет изменения результата?
@StandaloneCoder
@StandaloneCoder 3 года назад
в 3д движке я использовал Numba для ускорения одной функции и повысил фпс в 3 раза, также использовал Numba в создании 3д игры на raycasting, в проекте игра "Жизнь" ускорял функцию и еще в ряде проектов про raytracing и raymarching...
@WinchesterD
@WinchesterD 3 года назад
Смотрю и мне кажется, что это какая-то магия.
@artur-lg7wv
@artur-lg7wv 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.
@Howidog
@Howidog 3 года назад
А с чем может быть связано, то что одна и та же программа выполняется за разное время, хотя там не используется рандом или ещё что-то не зависящее от начальных условий?
@YuraSamusenko
@YuraSamusenko 3 года назад
Это может зависеть от нагружености компа другими прогами
@chel3391
@chel3391 3 года назад
Зависит от планировщика ОС. Если кратко, то это как часто и на какое время он будет выделять процессор программе
@lEpIvIaKl
@lEpIvIaKl 7 месяцев назад
Тут верно сказали выше, но приведу ещё человеческую примитивную аналогию - возьмём спортсмена, он в одних и тех же условиях, в одном и том же физ. состояние будет пробегать 60 метров - всегда будут различаться результаты на какие-то доли секунды.
@mihprog9070
@mihprog9070 3 года назад
Спасибо.
@bro_fedka3951
@bro_fedka3951 3 года назад
Здравствуйте, мне хотелось бы подкинуть идею для нового ролика ... Pygame может обрисовывать растровые изображения, но можно ли сделать движок, который будет выводить простые векторные картинки например *.svg (простые фигуры: пути, линии, полигоны, круги, прямоугольники)
@bro_fedka3951
@bro_fedka3951 3 года назад
Мне просто интересно... Что будет быстрее отрисовывается ? Векторное изображение или же то же самое изображение переведённое в растровый формат ?
@muxriddinabduraxmonov5639
@muxriddinabduraxmonov5639 3 года назад
Классно видео монтаж 👍👍👍👍
@sbo_ro
@sbo_ro 3 года назад
- Питон лучше чем нормальные языки! - Чем лучше? - Чем нормальные языки!
@user-oe5ok3sj4q
@user-oe5ok3sj4q Год назад
кек, т.е. Питон не нормальный?
@markfever3637
@markfever3637 3 года назад
Всё правильно сделано и понятно показано, однозначно ЛАЙК. Но вот использование многопоточности в Python и сравнение с результатами кода которые работали в одном потоке немного не честно.
@user-bc1ev6ki6m
@user-bc1ev6ki6m 3 года назад
СПС за видос
@zikpin
@zikpin 3 года назад
Нет слов 😲👏👏
@_therazereasygame_7871
@_therazereasygame_7871 3 года назад
Люблю тебя
@maxtarasenko1391
@maxtarasenko1391 3 года назад
Больше анимешных девочек требуют наши сердца
@randomniy_noyneim
@randomniy_noyneim 2 года назад
Люблю аниме тян)
@user-ex2rh2vc4o
@user-ex2rh2vc4o 2 года назад
Цой и аниме- зашибись
@MK-ye9gl
@MK-ye9gl 3 года назад
Спасибоооо!!!!
@bohdan9884
@bohdan9884 3 года назад
Не смотря задам вопрос, питон будут ускорять приимуществом компилтайма? По типу "так же быстр как Си".. ага будет весело
@segnities5425
@segnities5425 3 года назад
Можно ли использовать этот метод при создании игр на Python? (сам только начал его учить)
@StandaloneCoder
@StandaloneCoder 3 года назад
конечно, я уже много раз успешно использовал Numba для создания игр
@segnities5425
@segnities5425 3 года назад
@@StandaloneCoder спасибо
@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-ic6jp7je7c
@user-ic6jp7je7c 3 года назад
С++ тоже можно компилятор настроить под необходимые оптимизации. С# - можно собрать сразу в исполняемый код, не говоря уже что c#9.0 стал быстрее сам по себе в .net5. Это просто фейс палм. Особенно если представить, что они свой пайтон на высоконагруженные сервера не тестили, где часто вкладывают тонны денег ради нанооптимизаций. Очень интересно сравнение в стандартных задачах ООП, обращения в Dictionary (map), Скорей всего работа с памятью в пайтон будет еще медленее. Хайп да и только. Интересно, что питонщики в сторону php8 with JIT скажут, если даже в сравнении с php7 медленее.
@dalexgames549
@dalexgames549 Год назад
Вот полностью поддерживаю, не говоря уже о доступе к памяти и других низкоуровневых штуках,как можно вообще сравнивать питон и плюсы не понимаю
@fada9238
@fada9238 2 года назад
Только вот почему, в таком случае, если я делаю запись в файл - алгоритм на Python делает больше записей в секунду, чем C++?
@forgemest1822
@forgemest1822 3 года назад
Круто. А для Ruby есть такой ускоряющий компилятор?
@qwerty_zvnt
@qwerty_zvnt 3 года назад
При выполнении скрипта интерпретатору укажите аргумент --jit
@user-jn2qv1yq9g
@user-jn2qv1yq9g 3 года назад
Здравствуйте, вы делали видео по raycasting, можете показать как сделать ракетомет просто сам пробовал но не получилось
@user-il3ol1fy4y
@user-il3ol1fy4y 3 года назад
хорошая идея
@PIEIgorEfremenko
@PIEIgorEfremenko 2 года назад
хех, прикольная вставочка с танцующей девчонкой 👍
@x-5648
@x-5648 2 года назад
Мне кажется Пайтон всё-таки создавался для вэб разработки , где скорость в основном зависит от интернет соединения , хотя я скорее всего ошибаюсь или , ладно я не знаю))
@user-lp3pp9hu7t
@user-lp3pp9hu7t 3 года назад
Я чутка офигел от увиденного, не ожидал что Python может быть таким быстрым. Лайк автору.
@daniil2704
@daniil2704 2 года назад
Есть только одно но, указав с++ компилятору один параметр "-O3" - время выполнения программы на с++ в миллион раз сократиться, у меня на планшете (потому что мне лень за пк идти) оно вышло быстрее чем в видео в десятки раз, на планшете! Далеко не на самом мощном.
@LithiumDeuteride-6
@LithiumDeuteride-6 6 месяцев назад
Это старый фокус, чтобы запарить мозги тем, кто не разбирается в работе современных процессоров. А конкретно, процессор занят делениями на около 95%. Причём АМД выполняют деления раза в два медленней интелов, даже кора 2 дуба быстрей райзена 3600, ну по тактам.
@Danilaboni
@Danilaboni 3 года назад
Лучший
@Danilaboni
@Danilaboni 3 года назад
Не ожидал что буст будет на столько высокий
@v0xl
@v0xl 3 года назад
Мне показался маловатым. LuaJIT (для Lua) даёт буст 200-5000% (обвчно около 1000%) Numba работает почти так же. Это тоже 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 Спасибо ,даже не заметил
@zhabiboss
@zhabiboss Год назад
«Он слишком силён чтобы быть в живых…»
@user-ps1qg3sz6d
@user-ps1qg3sz6d 3 года назад
Апупеть! Это магия какая-то👍
@user-rp1yn5pu9m
@user-rp1yn5pu9m 3 года назад
Интересно, а это работает с 3D? Если ты допустим использовал Ursina или Panda3d
@backer01
@backer01 3 года назад
Нумба не работает с не встроенными классами, поэтому можно будет ускорить только вычисления
@user-ps4ot2pi8h
@user-ps4ot2pi8h 3 года назад
Тоже было интересно, на сколько питон медленный
@LDA144
@LDA144 3 года назад
спасибо
@PEPMESHKAGDE
@PEPMESHKAGDE 5 месяцев назад
бро,ты лучший.все,кто говорят про медленность питона просто не умеют писать.
@stanislavsh6582
@stanislavsh6582 2 года назад
C С++ можно было дрбиться и лучшей скорости, настроив использование векторизации при компиляции, плюс учитывая что программа чисто тестовая и должна на одном железе работать - включив эти самые оптимизации под нужное железо . В общем, поигравшись с флагами компиляции на С++ можно было еще раза в 2 точно ускорить, и это при одном потоке. Если прикрутить как раз многопоток - вообще страшные вещи бы начали происходить.
@user-bw7ov8ip5w
@user-bw7ov8ip5w 3 года назад
Интересно
@user-de2px1ed8k
@user-de2px1ed8k 3 года назад
А как у тебя получилось так, что njit не ругается The keyword argument 'parallel=True' was specified but no transformation for parallel execution was possible и дальше по еще предупреждения по коду? При том что сама параллелизация отрабатывает. Погуглил и у многих такие сообщения вылезают.
@usertwgetrukwwr9669
@usertwgetrukwwr9669 3 года назад
numba муторная тема надо английский знать и читать документацию а если не знаешь английский то на гугле далеко не уедешь
@user-de2px1ed8k
@user-de2px1ed8k 3 года назад
@@usertwgetrukwwr9669 Да я и английский знаю, и официальную ссылку по проблеме читал, там скрипт диагностики, но нихуя не понятно но очень интересно.
@user-hc9pb1bj3f
@user-hc9pb1bj3f 3 года назад
нечего себе а этот модуль ускоряет не только функции работы с целыми числами?
@alliluiya
@alliluiya 3 года назад
Вы фриланс заказы делаете?
@juyeong7117
@juyeong7117 3 года назад
Досмотрел видео до конца, хотел поставить лайк... Оказалось, что я его уже поставил после четырех минут просмотра. Жаль, что нельзя поставить больше одного лайка...
@City__Walker
@City__Walker 2 года назад
А 3д графику он тоже так считать будет при использовании numba?
@StandaloneCoder
@StandaloneCoder 2 года назад
все что связано с вычислениями Numba выводит по скорости на уровень компилируемых языков. Нумбу можно использовать и в вычислениях на видеокарте - будет еще в разы быстрее, но сложнее реализовать
@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...
@MY-nh2xe
@MY-nh2xe 2 года назад
скажите плес) прога последняя на GPU вычисляет?
@StandaloneCoder
@StandaloneCoder 2 года назад
cpu
@romanbush5164
@romanbush5164 2 года назад
Это прям магия, какая-то спасибо. Подписался. А плюсы это задни.. )... хоть я и начал их изучать.. А что если совместить namba и pypy ( метод хауди-хо). Прослезился, надо будет обязательно попробовать))))
@IExSet
@IExSet Год назад
А нафига ?
@myganter
@myganter 3 года назад
С шарпом у тебя не корректный тест получился, в clr есть такая фича как jit компиляция, тебе нужно было в холостую вызвать все написанные тобой методы чтобы они откомпилились и сохранились в кеш
@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?
@retrogame6571
@retrogame6571 2 года назад
круто когда следующее видео? кстати а если асемблер попробовать ускорить?
@seekyboi23
@seekyboi23 Год назад
Каким раком ускорить ассемблер
@bobtetris6335
@bobtetris6335 2 года назад
Круто. А выигрывая в скорости мы ничего другого не теряем или это безвозмездный буст?
@IExSet
@IExSet Год назад
Это работает только на хэлловордах, реально сложный код так просто не ускорить.
@user-lh7qr9js1c
@user-lh7qr9js1c 3 года назад
Js на винде заметно медленнее, что если сделать на линуксе ?
@user-pm4fr8od6b
@user-pm4fr8od6b 3 года назад
А будут уроки по другим ЯП🤔
@user-mx2vr9oj6z
@user-mx2vr9oj6z 3 года назад
Пипец ты пишешь так плавно и быстро, я тоже хочу когда-нибудь также
@backer01
@backer01 3 года назад
Он же ускорил на монтаже всё)
Далее
🎙Пою Вживую!
2:59:56
Просмотров 1,2 млн
Пишу 3D Движок на Python [ Pygame + Numpy ]
21:56
🎙Пою Вживую!
2:59:56
Просмотров 1,2 млн