Benchmark y Profiling
Ivan Leon
XalapaCode
12/09/2025
IN MEMORIAM
Dennis Ritchie
⭐ 09/09/1941 🙏12/10/2011
🚀 Creador del Lenguage C
🚀Co-creador del Sistema Operativo
UNIX
Dennis Ritchie recibe la Medalla Nacional de Tecnología de EE. UU. (Dec. 1988)
Práctica que implica evaluar el rendimiento de sistemas y componentes en un conjunto predefinido de condiciones.
Proceso para comprender la eficiencia, la fiabilidad y la escalabilidad de las aplicaciones, en múltiples condiciones.
Optimización de Rendimiento
Optimización de Rendimiento
CASO: un proveedor de almacenamiento en la nube (AWS, Google, etc.) evalúa su software de sincronización de archivos en varios Sistemas Operativos (SOs).
Toma de Decisiones Informada
Toma de Decisiones Informada
CASO: e-commecer evalúa Sistemas de Bases de Datos para determinar cuál ofrece el mejor rendimiento por medio de pruebas de Escrita y Lectura de datos.
Pruebas de Confiabilidad y Estabilidad
Pruebas de Confiabilidad y Estabilidad
CASO: Un sitio de e-commerce se prepara para lanzar ofertas en un evento de "Black Friday".
Para Web Servers:
- Apache Bench (apt-get install apache2-utils)
- wrk (https://github.com/wg/wrk)
Para Bases de Datos:
- sysbench (mysql / oracle / postgresql)
- pgbench (postgresql)
Para todo:
- Shellscript, Python, Lua
Técnica utilizada en el desarrollo de software para medir y analizar el comportamiento de un programa en tiempo de ejecución.
Al perfilar, se puede identificar qué componentes de un software/sistema más recursos consume, como tiempo de CPU, memoria o operaciones de E/S,
por medio de métricas!
Ejecución (CPU)
Memoria
Threads
PY SPY
https://github.com/benfred/py-spy
Software Engineer
Organizador
@ivanleoncz
GRACIAS!