SlideShare una empresa de Scribd logo
1 de 21
Python más rápido  que C Facundo Batista Lucio Torre
Objetivos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Recuerden We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Donald Knuth Structured Programming with goto Statements ACM Journal Computing Surveys Vol 6, No. 4, Dec. 1974. p.268
Gap Bajo nivel  Alto nivel (código final)  (ideas) ASM  C  Python ¡este camino lo tiene que recorrer alguien!
Multiplicar un número ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Traduciendo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ptrace int main() {  pid_t child; BIGNUM *count; child = fork(); count = BN_new(); if(child == 0) { ptrace(PTRACE_TRACEME, 0, NULL, NULL); execl("/usr/bin/python", "python", "nada.py", NULL); } else { int status; while(1) { wait(&status); if(WIFEXITED(status)) break; ptrace(PTRACE_SINGLESTEP, child, NULL, NULL); BN_add(count, count, BN_value_one()); } printf("Total %s", BN_bn2dec(count)); } return 0; }
Cuánto ejecutamos ,[object Object],[object Object],[object Object],[object Object],¡Python es más de 100 veces más lento! ¿Posta?
Multiplicamos un número ¿Cuanto se tarda en todo el proceso?   edición  compilación  ejecución C  x  y  z python  x/2  0  z * 100 calculadora  x/5  0  q  (q <<x) Para definir una metrica, lo importante es el contexto
Un caso más real ,[object Object],[object Object],[object Object],[object Object],[object Object]
Soportando big nums ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¡A la hoguera! ¡Herejía, herejía!  (acá abandonamos el primer día de trabajo)
Enfocándonos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Matrices
Relación entre ambos Python es más parecido a C cuanto más grande es el cálculo (no tenemos ni idea por qué)
Saliendo de los números ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Optimizando Optimizamos después  de revisar tiempos Es más fácil optimizar código correcto que corregir código optimizado
Enfocándonos (de nuevo) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclu... ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
...siones Muchas veces C es más rápido que Python, pero no siempre se justifica el esfuerzo extra “ Premature optimization  is the root of all evil”  Donald Knuth
Copyright  Facundo Batista y Lucio Torre Licencia Atribución-No Comercial-Compartir Obras Derivadas Igual 2.5 Genérica http://creativecommons.org/licenses/by-nc-sa/2.5/deed.es_AR

Más contenido relacionado

La actualidad más candente

Microcontroladores
Microcontroladores Microcontroladores
Microcontroladores electro_pic
 
Introducción a Google Go
Introducción a Google GoIntroducción a Google Go
Introducción a Google GoScalia
 
Numexpr (python madrid)
Numexpr   (python madrid)Numexpr   (python madrid)
Numexpr (python madrid)kikocorreoso
 
Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))kikocorreoso
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de AlgoritmosSilvana Vargas
 
Laborqatoio 1 telematica
Laborqatoio 1 telematicaLaborqatoio 1 telematica
Laborqatoio 1 telematicamaleja2012
 
Python Tutorial Presentation
Python Tutorial PresentationPython Tutorial Presentation
Python Tutorial Presentationguestccc92ad
 
Micc final feb04_2010_soluc
Micc final feb04_2010_solucMicc final feb04_2010_soluc
Micc final feb04_2010_solucJair BG
 
Analisis de Algoritmos Multihilo
Analisis de Algoritmos MultihiloAnalisis de Algoritmos Multihilo
Analisis de Algoritmos MultihiloXavier Ochoa
 

La actualidad más candente (18)

Microcontroladores
Microcontroladores Microcontroladores
Microcontroladores
 
Introducción a Google Go
Introducción a Google GoIntroducción a Google Go
Introducción a Google Go
 
Hebras En Accion
Hebras En AccionHebras En Accion
Hebras En Accion
 
Paralela9
Paralela9Paralela9
Paralela9
 
Numexpr (python madrid)
Numexpr   (python madrid)Numexpr   (python madrid)
Numexpr (python madrid)
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
 
Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))Python científico (introducción a numpy y matplotlib))
Python científico (introducción a numpy y matplotlib))
 
Tarea 1
Tarea 1Tarea 1
Tarea 1
 
Clase2_Python-CTIC
Clase2_Python-CTICClase2_Python-CTIC
Clase2_Python-CTIC
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmos
 
Laborqatoio 1 telematica
Laborqatoio 1 telematicaLaborqatoio 1 telematica
Laborqatoio 1 telematica
 
Aplicacion de limites
Aplicacion de limitesAplicacion de limites
Aplicacion de limites
 
Subrutinas de retardo
Subrutinas de retardoSubrutinas de retardo
Subrutinas de retardo
 
Python Tutorial Presentation
Python Tutorial PresentationPython Tutorial Presentation
Python Tutorial Presentation
 
Introduccion a go
Introduccion a goIntroduccion a go
Introduccion a go
 
Pic retardos por software
Pic retardos por softwarePic retardos por software
Pic retardos por software
 
Micc final feb04_2010_soluc
Micc final feb04_2010_solucMicc final feb04_2010_soluc
Micc final feb04_2010_soluc
 
Analisis de Algoritmos Multihilo
Analisis de Algoritmos MultihiloAnalisis de Algoritmos Multihilo
Analisis de Algoritmos Multihilo
 

Destacado

Parallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzadosParallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzadosDaniel Muccela
 
Fases del proceso de programación
Fases del proceso de programaciónFases del proceso de programación
Fases del proceso de programaciónRoberto Aguirre
 
METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I
METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION IMETODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I
METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION IVideoconferencias UTPL
 
Fases de dasorrollo de un software Mapa Conceptual
Fases de dasorrollo de un software Mapa ConceptualFases de dasorrollo de un software Mapa Conceptual
Fases de dasorrollo de un software Mapa Conceptualariannalizeeth
 
Tipos de programacion
Tipos de programacionTipos de programacion
Tipos de programacionMonik AZ
 
Fases del proceso de programación
Fases del proceso de programaciónFases del proceso de programación
Fases del proceso de programaciónelizabethpaola
 
Evolución de los Lenguajes de Programación.
Evolución de los Lenguajes de Programación.Evolución de los Lenguajes de Programación.
Evolución de los Lenguajes de Programación.Anastacio Mendoza
 
Programación lineal entera y binaria
Programación lineal entera y binariaProgramación lineal entera y binaria
Programación lineal entera y binariaJaime Medrano
 
HISTORIA DE LA PROGRAMACION
HISTORIA DE LA PROGRAMACIONHISTORIA DE LA PROGRAMACION
HISTORIA DE LA PROGRAMACIONFredy Olaya
 
Clases Scrollbar,Scrollpane,Choice
Clases Scrollbar,Scrollpane,ChoiceClases Scrollbar,Scrollpane,Choice
Clases Scrollbar,Scrollpane,ChoiceKathya Martinez
 
Mapa conceptual fases en el desarrollo de un programa
Mapa conceptual fases en el desarrollo de un programaMapa conceptual fases en el desarrollo de un programa
Mapa conceptual fases en el desarrollo de un programakparawhore
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores947369
 
Lección 1 Introducción a los Lenguajes de Programación
Lección 1   Introducción a los Lenguajes de ProgramaciónLección 1   Introducción a los Lenguajes de Programación
Lección 1 Introducción a los Lenguajes de Programaciónocasas
 

Destacado (20)

Manual del dev c++
Manual del dev c++Manual del dev c++
Manual del dev c++
 
Parallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzadosParallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzados
 
Mvc
MvcMvc
Mvc
 
Php.ini
Php.iniPhp.ini
Php.ini
 
Java vs Python
Java vs PythonJava vs Python
Java vs Python
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Fases del proceso de programación
Fases del proceso de programaciónFases del proceso de programación
Fases del proceso de programación
 
METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I
METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION IMETODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I
METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I
 
Fases de dasorrollo de un software Mapa Conceptual
Fases de dasorrollo de un software Mapa ConceptualFases de dasorrollo de un software Mapa Conceptual
Fases de dasorrollo de un software Mapa Conceptual
 
Fases del proceso de programación
Fases del proceso de programaciónFases del proceso de programación
Fases del proceso de programación
 
Tipos de programacion
Tipos de programacionTipos de programacion
Tipos de programacion
 
Fases del proceso de programación
Fases del proceso de programaciónFases del proceso de programación
Fases del proceso de programación
 
Evolución de los Lenguajes de Programación.
Evolución de los Lenguajes de Programación.Evolución de los Lenguajes de Programación.
Evolución de los Lenguajes de Programación.
 
Programación lineal entera y binaria
Programación lineal entera y binariaProgramación lineal entera y binaria
Programación lineal entera y binaria
 
HISTORIA DE LA PROGRAMACION
HISTORIA DE LA PROGRAMACIONHISTORIA DE LA PROGRAMACION
HISTORIA DE LA PROGRAMACION
 
Clases Scrollbar,Scrollpane,Choice
Clases Scrollbar,Scrollpane,ChoiceClases Scrollbar,Scrollpane,Choice
Clases Scrollbar,Scrollpane,Choice
 
Mapa conceptual fases en el desarrollo de un programa
Mapa conceptual fases en el desarrollo de un programaMapa conceptual fases en el desarrollo de un programa
Mapa conceptual fases en el desarrollo de un programa
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
 
Python Programming Essentials - M5 - Variables
Python Programming Essentials - M5 - VariablesPython Programming Essentials - M5 - Variables
Python Programming Essentials - M5 - Variables
 
Lección 1 Introducción a los Lenguajes de Programación
Lección 1   Introducción a los Lenguajes de ProgramaciónLección 1   Introducción a los Lenguajes de Programación
Lección 1 Introducción a los Lenguajes de Programación
 

Similar a Python Vs C

Similar a Python Vs C (20)

Pyrapidc
PyrapidcPyrapidc
Pyrapidc
 
Phyton
PhytonPhyton
Phyton
 
Mynor Alexander Hernandez Canuz
Mynor Alexander Hernandez CanuzMynor Alexander Hernandez Canuz
Mynor Alexander Hernandez Canuz
 
Modelo Simulado
Modelo SimuladoModelo Simulado
Modelo Simulado
 
Investigacion 1
Investigacion 1Investigacion 1
Investigacion 1
 
Varios tema de c++ por (alvaro tejada)
Varios tema de c++ por (alvaro tejada)Varios tema de c++ por (alvaro tejada)
Varios tema de c++ por (alvaro tejada)
 
El arte de programar c++ - versión 3.0
El arte de programar   c++ - versión 3.0El arte de programar   c++ - versión 3.0
El arte de programar c++ - versión 3.0
 
Prueba
PruebaPrueba
Prueba
 
Manual.es
Manual.esManual.es
Manual.es
 
Tutorial c++
Tutorial c++Tutorial c++
Tutorial c++
 
Lenguaje c neo
Lenguaje c neoLenguaje c neo
Lenguaje c neo
 
Cesar lenguaje c_
Cesar lenguaje c_Cesar lenguaje c_
Cesar lenguaje c_
 
Funciones C++
Funciones C++Funciones C++
Funciones C++
 
Ejercicios de programacion if - switch-case
Ejercicios de programacion   if  -   switch-caseEjercicios de programacion   if  -   switch-case
Ejercicios de programacion if - switch-case
 
Yudy Centeno M
Yudy Centeno MYudy Centeno M
Yudy Centeno M
 
Practicas bloque 1
Practicas bloque 1Practicas bloque 1
Practicas bloque 1
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++
 
Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2
Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2
Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2
 
Introduccion a c++
Introduccion a c++Introduccion a c++
Introduccion a c++
 
Instituto tecnológico particular
Instituto tecnológico particularInstituto tecnológico particular
Instituto tecnológico particular
 

Último

Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 

Último (20)

Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 

Python Vs C

  • 1. Python más rápido que C Facundo Batista Lucio Torre
  • 2.
  • 3. Recuerden We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Donald Knuth Structured Programming with goto Statements ACM Journal Computing Surveys Vol 6, No. 4, Dec. 1974. p.268
  • 4. Gap Bajo nivel Alto nivel (código final) (ideas) ASM C Python ¡este camino lo tiene que recorrer alguien!
  • 5.
  • 6.
  • 7. ptrace int main() { pid_t child; BIGNUM *count; child = fork(); count = BN_new(); if(child == 0) { ptrace(PTRACE_TRACEME, 0, NULL, NULL); execl(&quot;/usr/bin/python&quot;, &quot;python&quot;, &quot;nada.py&quot;, NULL); } else { int status; while(1) { wait(&status); if(WIFEXITED(status)) break; ptrace(PTRACE_SINGLESTEP, child, NULL, NULL); BN_add(count, count, BN_value_one()); } printf(&quot;Total %s&quot;, BN_bn2dec(count)); } return 0; }
  • 8.
  • 9. Multiplicamos un número ¿Cuanto se tarda en todo el proceso? edición compilación ejecución C x y z python x/2 0 z * 100 calculadora x/5 0 q (q <<x) Para definir una metrica, lo importante es el contexto
  • 10.
  • 11.
  • 12. ¡A la hoguera! ¡Herejía, herejía! (acá abandonamos el primer día de trabajo)
  • 13.
  • 15. Relación entre ambos Python es más parecido a C cuanto más grande es el cálculo (no tenemos ni idea por qué)
  • 16.
  • 17. Optimizando Optimizamos después de revisar tiempos Es más fácil optimizar código correcto que corregir código optimizado
  • 18.
  • 19.
  • 20. ...siones Muchas veces C es más rápido que Python, pero no siempre se justifica el esfuerzo extra “ Premature optimization is the root of all evil” Donald Knuth
  • 21. Copyright Facundo Batista y Lucio Torre Licencia Atribución-No Comercial-Compartir Obras Derivadas Igual 2.5 Genérica http://creativecommons.org/licenses/by-nc-sa/2.5/deed.es_AR