Raspberry Pi Pico C++ vs Python Performance

Поділитися
Вставка
  • Опубліковано 5 лис 2024

КОМЕНТАРІ • 59

  • @Tutoelectro1
    @Tutoelectro1  3 роки тому +6

    There is an error, for the Addition, Substraction, Multplicaiton and division the result variables should've been declared as double instead of uint32_t.

    • @ChristianTreber
      @ChristianTreber 3 роки тому +12

      That is so fundamental that you should redo the video.

  • @guillermotodaro6573
    @guillermotodaro6573 3 роки тому +3

    Interesante. Para mí de la vieja escuela del PIC las prioridades de rendimiento son el assembler y el C consecutivamente. Con los otros no e experimentado.

    • @franciscogerardohernandezr4788
      @franciscogerardohernandezr4788 3 роки тому +1

      Siguen siendo excelentes elecciones cuando el rendimiento es critico. El nuevo lenguaje competidor contra la vieja guardia es el Rust, que tiene la velocidad de nuestros lenguajes favoritos en un lenguaje moderno. Saludos y que su familia este con salud.

    • @Tutoelectro1
      @Tutoelectro1  3 роки тому +2

      Ya, bueno a medida que crece la capacidad de procesamiento los lenguajes de alto nivel se van abriendo cada vez más paso.

  • @pictrance
    @pictrance 3 роки тому +8

    El lento python contra en poderosisimo C

    • @Tutoelectro1
      @Tutoelectro1  3 роки тому +1

      Se programa en Python porque te permite prototipar y hacer cosas de más alto nivel más fácilmente, la misma razón por la que se usa en un PC.

    • @pictrance
      @pictrance 3 роки тому

      @@xorvideos que yo sepa si hay librerías de python para C, solo que no sé si haya para micropython

    • @phelipe8888
      @phelipe8888 3 роки тому

      @@pictrance hay si tu puedes ultilizar la librería Cython

  • @poucxs9246
    @poucxs9246 Рік тому

    Judging based upon the stats that you shared at the end i would think that using C instead of Python would make a difference in terms of performance. What would be the specific situations in which C should be used instead of Python since i think that Python is easier to work with then C or C++.

  • @erebosubuntu9063
    @erebosubuntu9063 3 роки тому

    Muchas gracias por atender mi peticion.

  • @gabrielcuevas5837
    @gabrielcuevas5837 3 роки тому +6

    hola Alex, yo no se de programación, apenas estoy tratando de aprender HTML, si logro algo seguiré con Css luego Python y después a ver si aprendo algo, seguiría con lo que pueda, voy muy lento, pero trato de aprender, saludos.

    • @Bleibruk
      @Bleibruk 3 роки тому +2

      Te recomiendo aprender primero python, o si lo que quieres hacer es web, aprender css y Javascript. Ahora, si tienes arduinos, o algo para practicar, aprende c/c++

    • @gabrielcuevas5837
      @gabrielcuevas5837 3 роки тому +1

      @@Bleibruk Hombre!, te agradezco mucho el consejo, así lo haré, y es que he visto temas de Arduino, pero solo veo, no entiendo casi nada pues no se nada de programación, pero seguiré tu consejo, muchas gracias, abrazos sinceros desde México.

    • @Tutoelectro1
      @Tutoelectro1  3 роки тому +2

      Sí, como dice Juan, Python es más fácil para empezar. Saludos!

  • @TheSwartz
    @TheSwartz 3 роки тому

    @1:42
    So, what is the label for the bars? Which color is yellow or blue?

    • @Zman2024
      @Zman2024 2 роки тому

      blue = C++
      yellow = Python

  • @HrishikeshMuruk
    @HrishikeshMuruk Рік тому

    Would be cool to see a power/energy comparison also

    • @hendrik289
      @hendrik289 8 місяців тому

      Do microcontrollers have powermanagement? I think they will be always using the same energy. It dosnt matter if its under load or not I think?

  • @marvicdigital
    @marvicdigital 3 роки тому

    Tengo una pregunta de un novato, los tiempos mostrados que están midiendo realmente, la compilación o el tiempo de respuesta del procesador a la tarea asignada por el código?

    • @eladiobarrioquerol5498
      @eladiobarrioquerol5498 3 роки тому

      Encender GPIO, acción y apagar GPIO. Adquiere la señal del GPIO con el osciloscopio tiene pinta

    • @yuryeuceda8590
      @yuryeuceda8590 3 роки тому

      Es lo segundo, no tiene sentido medir performance de tiempo de compilación.

  • @cristianalejandroayontzint6018
    @cristianalejandroayontzint6018 2 роки тому

    Soy yo, o aún así pareciera que en C sigue siendo algo lenta la respuesta?

  • @SobhitPanda
    @SobhitPanda 3 роки тому

    Sir please tell me, what was the approach or process to get these results.

    • @Tutoelectro1
      @Tutoelectro1  3 роки тому +1

      What exactly do you want to know?

    • @SobhitPanda
      @SobhitPanda 3 роки тому

      @@Tutoelectro1 how did you test the time taken for each case

    • @Tutoelectro1
      @Tutoelectro1  3 роки тому

      @@SobhitPanda Look at the code, I just put a pin high before the testing code and then put it low when it was done. Then measured it with an oscilloscope.

    • @SobhitPanda
      @SobhitPanda 3 роки тому

      @@Tutoelectro1 thankyou 😁 Got it

  • @ManuelMartinez-sl7op
    @ManuelMartinez-sl7op 3 роки тому +6

    La diferencia en bitewise es barbara, excelente video 👍

  • @Danixu86
    @Danixu86 3 роки тому +4

    Python is an interpreter language, so obviously is much slower (and for sure uses much more RAM). Anyway, is much better than Java :P

    • @chriscolman1620
      @chriscolman1620 3 роки тому +1

      Java, in the desktops and servers, actually runs almost as fast as C++ for many apps - surprising, I know, but it makes sense when you think about it! Unlike Python, Java IS a compiled language and the Virtual Machine it runs on typically optimizes apps at run time using HotSpot technology and it does some pretty awesome optimizations - and focuses on the "hot spots" i.e. the code that gets executed the most - which is something a 'compile time optimizer' like that built into GCC can never do.
      There is a story that James Gosling, creator of Java tells, where he was at a trade show where they had a performance competition between the GCC guys and the Java guys and the Java app was actually running faster than the same app written in C++ and compiled with GCC - the GCC guys were trying every compiler optimization they could find but Java, with its HotSpot optimization was still beating the natively compiled C++ app!

  • @Luix
    @Luix 9 місяців тому

    C vs python, right?

    • @Anonyme-kx6xt
      @Anonyme-kx6xt 6 місяців тому +1

      Would be the same result as with C++

  • @luismisardonsardon6536
    @luismisardonsardon6536 3 роки тому

    Excelente genial saludos 👍

  • @franciscodubon7108
    @franciscodubon7108 3 роки тому

    Aguante C!!!! Woooo!!!!

  • @miguelmoraila5955
    @miguelmoraila5955 3 роки тому +4

    Por norma general los lenguajes compilados son más veloces que los interpretados.

    • @Tutoelectro1
      @Tutoelectro1  3 роки тому

      Si, claro, mostrar eso no es el objetivo del vídeo.

  • @ElectronicIngDiaz0786
    @ElectronicIngDiaz0786 3 роки тому +2

    Excelente comparación entre dos lenguajes de programación para trabajar con la raspberry pi pico. Parece ser que la respuesta en C++, es más rápida que en python. Pregunta: ¿Que software permite programar la raspberry pi pico en C++?

    • @pictrance
      @pictrance 3 роки тому +2

      El sdk de arm
      Lo descargas de la página oficial

  • @charlieo.4218
    @charlieo.4218 3 роки тому

    Las diferencias son enormes en la mayoría de los casos, menos en UART, precisamente por ser algo de alto nivel. No hay ninguna sorpresa. Pero eso no significa que Python no deba ser usado, como todo, tiene su pros y contras y es responsabilidad de cada quien evaluar cual es mejor para su respectiva aplicación.

    • @yuryeuceda8590
      @yuryeuceda8590 3 роки тому +3

      Lo malo es que encuentras gente diciendo que "Python es mejor". Soy de los que pienso que cada lenguaje tiene su aplicabilidad y efectivamente será mejor o peor según los requerimientos de los proyectos.

    • @japalaciosh
      @japalaciosh 3 роки тому

      @@yuryeuceda8590Así es cada lenguaje tiene su lado fuerte, en el caso de Python es importante enfatizar que es un lenguaje direccionado hacia el diseño de algoritmos de IA y es dónde tiene su parte fuerte, por lo que se puede concluir que en muchos código requerible para una aplicación de alto nivel en está tarjeta rasberry Pico sea el lenguaje idóneo y no el C++.

    • @yuryeuceda8590
      @yuryeuceda8590 3 роки тому +1

      @@japalaciosh Pero ¿Cómo vas a decir eso? ¿Sabes la cantidad de operaciones matemáticas que conlleva el entrenamiento y prueba de las RNA? Claramente se nota que de igual manera que muestra el vídeo el Python tendrá menor rendimiento que C o que C++ o que Java inclusive en el área de IA. Podemos destacar de Python la sintáxis muy bien elaborada y los comodines de programación que nos brinda pero que sea diseñado para IA es lo más loco que he escuchado.

    • @Tutoelectro1
      @Tutoelectro1  3 роки тому +1

      Yo creo que José, lo dice por la cantidad de herramientas que hay para desarrollo de IA en el PC. Pero al final la mayoría de ese código corre CPython que es básicamente un wrapper de C en la mayoría de los casos.

  • @ChristianTreber
    @ChristianTreber 3 роки тому +1

    Looks nice but does not provide usable information. Why? You need to give the compilers the same problem to deal with to make comparisons. In other news: Code wise, it makes no sense to assign numbers with a fraction to integer types. Optimization wise, use a type width that matches the underlying hardware. And, find a better C++ compiler.

  • @RSC2194
    @RSC2194 2 роки тому +1

    la gracia de usar python en un PC es que te permite manejar ENORMES cantidades de datos de manera facil, por ejemplo aprender a usar tensorflow, opencv, opengl, etc no requiere que uses librerias para manejar los vectores y sus tamaños, pero no se puede hacer eso en un microcontrolador (ya se que hay un tensorflow lite y pequeñas adaptaciones de opencv para micropython pero son MUY lentas) por mucho mas tiempo se seguira usando C, no me sentaria en un auto que maneja el airbag con python

  • @marvicdigital
    @marvicdigital 3 роки тому +3

    Recuerdo un video sobre la velocidad de micropython hecho directamente por los creadores, en concreto desde este punto ua-cam.com/video/hHec4qL00x0/v-deo.html y muestran formas de incrementar la velocidad de respuesta cuando se requiera, tiene varios ejemplos para ir incrementando la velocidad, es obvio que el lenguaje de máquina es el más veloz a al hora de responder el micro, y en ambos lenguajes C y micropython se pueden escribir secciones en dicho lenguaje....lo pregunta sería, en que momentos es tan necesario una respuesta inmediata del micro a una causa como sensores o interrupciones externas?..yo diría que en equipos médicos, en automotríz, en equipos de laboratorio donde se requiera precisión o en aquellos casos donde menos de 10 ms hacen la diferencia...pero para los makers y electrónica en general que tan importantes o necesarias serían esas diferencias? ..creo que aprender estos tres lenguajes máquina, C y micropython harán mucho la diferencia en la eficiencia en los proyectos, tanto por el tiempo de desarrollo como la ejecución del mismo. Saludos.

    • @gabrielcuevas5837
      @gabrielcuevas5837 3 роки тому

      Excelente!

    • @japalaciosh
      @japalaciosh 3 роки тому +1

      Totalmente de acuerdo

    • @Tutoelectro1
      @Tutoelectro1  3 роки тому

      Gracias por compartir. Y con lo que dices, muchas veces no es importante pero otras muchas si, todo depende de lo que estés haciendo.

    • @homero7065
      @homero7065 3 роки тому +1

      Tienes mucha razon, no se trata de decir lo que uso o me gusta es mejor, sino saber los tres y usarlos de acuerdo a las necesidades del proyecto

  • @splendensregan5270
    @splendensregan5270 Рік тому +1

    python is like a garbage

  •  3 роки тому +1

    Soooo Python is a cr*p :P.