La mayoría de los programas y librerías se compilan por defecto
incluyendo los símbolos de depuración (con la opción -g
de gcc). Esto significa que, cuando se
depura un programa o librería que fue compilado incluyendo la
información de depuración, el depurador no nos da sólo las
direcciones de memoria, sino también los nombres de las rutinas y
variables.
Sin embargo, la inclusión de estos símbolos de depuración agranda sustancialmente un programa o librería. Para tener una idea del espacio que ocupan estos símbolos, echa un vistazo a lo siguiente:
Un binario bash con símbolos de depuración: 1200 KB
Un binario bash sin símbolos de depuración: 480 KB
Los ficheros de Glibc y GCC (/lib
y /usr/lib
) con símbolos de
depuración: 87 MB
Los ficheros de Glibc y GCC sin símbolos de depuración: 16 MB
Los tamaños pueden variar algo dependiendo del compilador y la librería C utilizadas, pero cuando comparamos programas con y sin símbolos de depuración, la diferencia generalmente está en una relación de entre 2 y 5.
Como muchas personas probablemente nunca usen un depurador en su sistema, eliminando estos símbolos se puede liberar una gran cantidad de espacio del disco. Para tu comodidad, la siguiente sección muestra cómo eliminar todos los símbolos de depuración de los programas y librerías. Puedes encontrar información sobre otras formas de optimizar tu sistema en la receta http://www.linuxfromscratch.org/hints/downloads/files/optimization.txt.