Los ajustes que recortan de verdad
Las opciones de compilación de Rust ordenadas por lo que quitan, las que solo lo parecen, y lo que cada una cuesta en tiempo de compilación o en depuración.
Los ajustes, ordenados
La primera es la que hay que aplicar siempre y la última es la que hay que evitar: comprimir un binario que va dentro de un instalador comprimido no reduce la descarga y sí añade tiempo de arranque y falsos positivos de antivirus.
Los dos con coste real
Merecen detalle porque el coste no es evidente:
Quitar los símbolos. El binario adelgaza mucho y, a cambio, cuando la aplicación falla en la máquina de un usuario, la traza que aparece en el registro es una lista de direcciones en vez de nombres de función. La solución no es dejarlos dentro: es quitarlos del binario y guardarlos aparte, para poder traducir las trazas después. La fase XII lo desarrolla, y es lo que hace que se pueda tener las dos cosas.
Abortar en vez de desenrollar. Sin desenrollado, un pánico en cualquier hilo termina el proceso inmediatamente, sin ejecutar la limpieza. Y eso choca con cosas que las fases anteriores dieron por hechas: los procesos hijos no se matan —nivel 47.3—, los ficheros a medio escribir no se cierran, y el guardado pendiente del nivel 44.1 no se vuelca. Para una aplicación que gestiona datos del usuario, ese ahorro no compensa.
Lo que más rinde y no está en las recetas
Este es el trabajo que de verdad cambia el número, y además tiene el beneficio del nivel 26.2: cada dependencia que quitas es una menos que corre con todos los permisos de tu aplicación.
Y el frontend
El nivel 56.1 dijo que suele ser la parte que nadie mide. Lo que rinde ahí:
- Desglosar por dependencia con la herramienta de tu constructor.
- Buscar la biblioteca de utilidades que se importa entera para usar dos funciones.
- Y mirar las fuentes y las imágenes, que a menudo son la mitad del peso y nadie las ha optimizado.