La optimización es el proceso de cambiar su código para que ejecute más rápido haciendo menos trabajo o haciendo más trabajo durante un largo período de tiempo. Debería comenzar ejecutando su programa con un perfilador. Un perfilador es una herramienta utilizada para ayudarle a encontrar dónde pasa la mayor parte del tiempo su programa y por qué tarda tanto tiempo. Te explicaré cómo perfilar tu código un poco más tarde.

Una vez que hayas encontrado qué partes de tu programa son lentas, es hora de sumergirte y modificar algún código, ¿no? ¡Mal! Es muy común romper su código mientras optimiza. Las pruebas le ayudan a detectar estas roturas de inmediato. Sin pruebas, usted podría pasar mucho tiempo haciendo mejoras que resulten ser incorrectas. Entonces todo ese tiempo habrá sido desperdiciado.

Mejorar el rendimiento de tu ordenador

Para hacer que el proceso de optimización sea más rápido, cree una referencia para la sección de código o conjunto de datos que está optimizando. Los puntos de referencia miden el tiempo que tarda tu código en ejecutarse. El sistema de referencia incorporado en Rust es agradable porque no tiene que insertar temporizadores manualmente cada vez que desee medir el rendimiento. Lo cual, querrá hacer con frecuencia a medida que su proyecto crezca para que todo siga funcionando rápidamente. Rust Nightly es necesario, pero aproveche si usted puede porque hará absolutamente su trabajo más fácil.

Si no es práctico para usted utilizar el sistema de referencia de Rust, es posible que pueda comparar su programa usando el shell1. Sin embargo, no tendrá la resolución de nanosegundo que hace con el método anterior.

Antes de ir más lejos, necesitamos repasar el costo del código operativo. KCachegrind muestra inicialmente la Búsqueda de instrucciones, que es el número de instrucciones ejecutadas. Este es un buen estimado para la cantidad de tiempo empleado. Pero hay otros costos útiles como L1 Instr. Obtenga Miss que muestra cuántas veces falló la caché de instrucción de Nivel 1. Utilice el cuadro combinado de la barra de herramientas en la parte superior derecha para cambiar el costo que se muestra.

Datos a tener en cuenta

  • Incluido: El costo de ejecutar el código dentro de esta función, incluyendo llamadas a otras funciones.
  • Self: El coste de ejecutar el código dentro de esta función, excluyendo las llamadas a otras funciones.
  • Llamado: Cuántas veces se ha llamado esta función.
  • Función: Nombre de la función. Los nombres de las funciones de oxidación están destrozados3 pero KCachegrind hace un trabajo razonable haciéndolos legibles para el ser humano.
  • Ubicación: La biblioteca ejecutable o compartida que contiene la función. Se adjunta una lista de archivos fuente que contienen el código utilizado en el cuerpo de la función cuando está disponible.