Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema02

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:iabd:pia:1eval:tema02 [2024/01/06 12:03]
admin [Poetry]
clase:iabd:pia:1eval:tema02 [2025/03/12 14:36] (actual)
admin [Medición de rendimiento]
Línea 392: Línea 392:
  
 for key in a.keys(): for key in a.keys():
-    print(key)+    print(key,a[key])
 </sxh> </sxh>
  
 <sxh base> <sxh base>
-nombre +nombre Juan 
-edad+edad 37 
 +</sxh> 
 + 
 +  * Recorrer obteniendo clave y valor 
 +<sxh python> 
 +for key, value in a.items(): 
 +    print(key,value)
 </sxh> </sxh>
  
Línea 649: Línea 655:
 </sxh> </sxh>
 ===== Medición de rendimiento ===== ===== Medición de rendimiento =====
- +Para medir el tiempo que ha tardado algo se usa el método ''perf_counter''.
-=== timeit === +
-IPython es como la forma genérica de los Jupyter Notebooks. Y tiene una serie de órdenes que podemos usar directamente. La orden ''%timeit'' permite saber el tiempo que ha tardado una orden en ejecutarse.  +
- +
- +
-<sxh python> +
-time = %timeit -n1 -r1 -o sum(range(10000000)) +
-</sxh> +
-Lo que hace es calcula el tiempo de ejecutar la orden ''sum(range(1000000000))'' y almacena cuanto ha tardado en ''time'' +
- +
-Y para imprimirlo, se usa+
-<sxh python> +
-print(round(time.average,2),"seg"+
-</sxh> +
- +
-<sxh base> +
-0.21 seg +
-</sxh> +
- +
-Sin embargo el problema de usar ''%timeit'' es que lo que ejecutas no puede devolver un resultado. Es decir que no podríamos saber el resultado de la suma. +
- +
-=== perf_counter === +
-Para solucionar el problema anterior podemos simplemente medir nosotros el tiempo que tarda un método en ejecutarse con la función ''perf_counter''.+
  
 <sxh python> <sxh python>
-from time import perf_counter+from time import monotonic
  
-t = perf_counter()+t = monotonic()
 resultado=sum(range(10000000)) resultado=sum(range(10000000))
-t=perf_counter()-t+t=monotonic()-t
  
 print(resultado) print(resultado)
Línea 690: Línea 674:
  
 El resultado se muestra en segundos El resultado se muestra en segundos
 +
 +<note tip>
 +El problema de ''perf_counter()'' es que cuenta el tiempo en el que el ordenador está suspendido mientras que ''monotonic()'' no lo hace. Y tampoco cuenta el tiempo que el proceso está suspendido.
 +</note>
  
 Mas información: Mas información:
 +  * [[https://luminousmen.com/post/how-to-not-leap-in-time-using-python/|How to not leap in time using Python]]
   * [[https://morton-kuo.medium.com/ml09-e549b2c26c47|ML09: Measuring Running Time in Python & R]]   * [[https://morton-kuo.medium.com/ml09-e549b2c26c47|ML09: Measuring Running Time in Python & R]]
  
Línea 700: Línea 689:
 <sxh bash> <sxh bash>
 pip install --user poetry pip install --user poetry
 +
 </sxh> </sxh>
 +
  
   * Comprobar que tenemos poetry instalado   * Comprobar que tenemos poetry instalado
Línea 706: Línea 697:
 <sxh bash> <sxh bash>
 poetry --version poetry --version
 +
 </sxh> </sxh>
  
Línea 711: Línea 703:
 <sxh bash> <sxh bash>
 poetry config virtualenvs.in-project true poetry config virtualenvs.in-project true
 +
 </sxh> </sxh>
  
clase/iabd/pia/1eval/tema02.1704539024.txt.gz · Última modificación: 2024/01/06 12:03 por admin