Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
clase:iabd:pia:1eval:tema02 [2023/11/16 11:54] admin [Estructuras de datos] |
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 base> | <sxh base> | ||
- | nombre | + | nombre |
- | edad | + | edad 37 |
+ | </ | ||
+ | |||
+ | * Recorrer obteniendo clave y valor | ||
+ | <sxh python> | ||
+ | for key, value in a.items(): | ||
+ | print(key, | ||
</ | </ | ||
Línea 649: | Línea 655: | ||
</ | </ | ||
===== Medición de rendimiento ===== | ===== Medición de rendimiento ===== | ||
+ | Para medir el tiempo que ha tardado algo se usa el método '' | ||
- | === timeit === | + | <sxh python> |
- | IPython es como la forma genérica de los Jupyter Notebooks. Y tiene una serie de órdenes que podemos usar directamente. La orden '' | + | from time import monotonic |
+ | t = monotonic() | ||
+ | resultado=sum(range(10000000)) | ||
+ | t=monotonic()-t | ||
- | <sxh python> | + | print(resultado) |
- | time = %timeit -n1 -r1 -o sum(range(10000000)) | + | print(round(t, |
- | </ | + | |
- | Lo que hace es calcula el tiempo de ejecutar la orden '' | + | |
- | + | ||
- | Y para imprimirlo, se usa: | + | |
- | <sxh python> | + | |
- | print(round(time.average, | + | |
</ | </ | ||
<sxh base> | <sxh base> | ||
+ | 49999995000000 | ||
0.21 seg | 0.21 seg | ||
</ | </ | ||
- | Sin embargo el problema de usar '' | + | El resultado |
- | === perf_counter === | + | <note tip> |
- | Para solucionar el problema | + | El problema |
+ | </ | ||
- | <sxh python> | + | Mas información: |
- | from time import perf_counter | + | * [[https:// |
+ | * [[https:// | ||
- | t = perf_counter() | + | ===== Poetry ===== |
- | resultado=sum(range(10000000)) | + | A veces no quieremos usar conda sino tener una carpeta con todo lo que necesita el proyecto, al estilo de //NodeJS//. En ese caso podemos usar una herramienta llamada [[https:// |
- | t=perf_counter()-t | + | |
+ | * Instalar poetry | ||
+ | <sxh bash> | ||
+ | pip install --user poetry | ||
- | print(resultado) | ||
- | print(round(t, | ||
</ | </ | ||
+ | |||
+ | |||
+ | * Comprobar que tenemos poetry instalado | ||
+ | |||
+ | <sxh bash> | ||
+ | poetry --version | ||
+ | |||
+ | </ | ||
+ | |||
+ | * Para decir que las librerías se instalen en nuestra propia carpeta del proyecto. | ||
+ | <sxh bash> | ||
+ | poetry config virtualenvs.in-project true | ||
+ | |||
+ | </ | ||
+ | |||
+ | * Para tener un proyecto con python y todas sus dependencias en la misma carpeta haremos lo siguiente: | ||
+ | <sxh bash> | ||
+ | poetry init | ||
+ | poetry add libclang = "< | ||
+ | poetry install | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | Si al hacer el '' | ||
+ | '' | ||
+ | deberemos crear la siguiente variable de entorno: | ||
+ | '' | ||
+ | </ | ||
+ | |||
+ | Para ejecutar el código hay 2 formas: | ||
+ | |||
+ | * Desde la línea de comandos: | ||
+ | <sxh python> | ||
+ | poetry run python my_script.py | ||
+ | </ | ||
+ | |||
+ | * Desde VS Code seleccionar en los entornos de ejecución la carpeta '' | ||
+ | {{ : | ||
+ | |||
+ | * Si queremos usar el entorno de poetry pero no está en nuestra carpeta se puede indicar a VS Code cual es el ejecutable de python que debe usar siempre para ello hay que crear en la carpeta de nuestro proyecto el fichero '' | ||
<sxh base> | <sxh base> | ||
- | 49999995000000 | + | { |
- | 0.21 seg | + | " |
+ | } | ||
</ | </ | ||
- | El resultado se muestra en segundos | ||
- | Mas información: | ||
- | * [[https:// | ||
===== Ejercicios ===== | ===== Ejercicios ===== |