Post on 03-Oct-2020
Optimización de códigoen proyectos de Software Libre
Eduardo Silva <edsiper@gmail.com> ; twitter.com/edsiper
SoftwareFlisol Santiago 2011 / http://edsiper.linuxchile.cl
¿ Optimizar ?
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
✔ Distintas necesidades- Servidores
- Desktop - Laptop - Teléfonos - Embedded devices
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
El Hardware es limitado
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Chrome v/s Firefox
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Bajemos un peldaño...
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
GNU/LinuxFlisol Santiago 2011 / http://edsiper.linuxchile.cl
Linux Kernel
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Linux Kernel - Scheduler
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Linux Kernel - Scheduler
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
¿ quien primero ?
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Benchmarks
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
HTTP ServersFlisol Santiago 2011 / http://edsiper.linuxchile.cl
Apache Benchmark
Permite obtener una “pseudo” idea de cuantos“requests” el servidor puede procesar por segundo
ab -n 15000 -c20 -k http://SERVER:IP/archivo
HTTP ServersFlisol Santiago 2011 / http://edsiper.linuxchile.cl
Apache Benchmark – Live Test
Archivo : 100 bytes
NginX : v1.0 port = 2002Cherokee : v1.2.2 port = 2003Apache2 : v2.2.17 port = 80Monkey : v0.14.0 port = 2001
ab -n 15000 -c 20 -k http://localhost/100b.txt
Monkey NginX Cherokee Apache0
5000
10000
15000
20000
25000
30000
Requests/Second
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Resultados: req/s
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Y despues de...
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Uso de memoria
Monkey NginX Cherokee0
200
400
600
800
1000
1200
1400
1600
Uso de Memoria
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Monkey-project.com
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Valgrind.org
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Valgrind
- Massif : consumo de memoria - Callgrind: costo por llamada a funciones
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Valgrind
Valgrind –tool=massif programa
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Valgrindvalgrind –tool=callgrind programa
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
¿ Como optimizar ?
- Uso eficiente de memoria- Reducir I/O a discos- Procesos/Hebras/CPU- Arquitectura
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Preguntas
edsiper@gmail.comedsiper.linuxchile.clTwitter.com/edsiper