Lo más importante para entender es cómo funciona la memoria. Para las computadoras modernas, aquí es donde el rendimiento se gana o se pierde. Para muchos problemas, los patrones de acceso a la memoria tienen un impacto más significativo en el rendimiento que la complejidad algorítmica. Usted querrá comenzar a pensar en sus programas en términos de datos, cómo se presenta en la memoria y cómo su código accede a ellos.
Recomendaría leer el documento ‘Lo que todo programador debe saber sobre la memoria’: página en akkadia.org
Una de las reglas básicas más simples es recordar que el hardware ama los arreglos y está altamente optimizado para la iteración sobre los arreglos. Una optimización simple para muchos problemas es simplemente dejar de usar estructuras de datos sofisticadas y usar arreglos simples (o std :: vectoress en C ++). Esto puede tomar algún tiempo para acostumbrarse.
(Además, si tiene antecedentes en Programación Orientada a Objetos, tendrá que comenzar a pensar de una manera diferente. Piense primero en la disposición de los datos y luego en cómo operará su código en ellos. Deje de pensar en incrustar pequeñas cantidades de datos en objetos que Está encapsulado con métodos cercanos a él.)
- Cómo verificar cuánto GLP queda en un cilindro en casa sin ningún dispositivo científico
- ¿Cuáles son algunos buenos recursos y consejos para que un occidental comience a planificar un viaje a largo plazo al área del Mediterráneo oriental?
- ¿Cuáles son algunos consejos para los ingenieros de software de nivel de entrada?
- ¿Cuáles son los mejores consejos y trucos de Logic Pro X para principiantes?
- ¿Cuáles son algunos buenos consejos sobre cómo gestionar los programadores?
Hay diferentes trucos específicos de arquitectura que se pueden hacer, pero honestamente no perdería mucho tiempo con estos. Además, muchas de las optimizaciones de mano que la gente solía hacer en C ahora las realizan compiladores sin la necesidad de un ajuste humano. Es la imagen más grande en la que debe pensar, porque a los compiladores les resulta difícil optimizar esto. Mantener el acceso a la memoria simple y lineal ayudará al rendimiento en casi todas las arquitecturas.
Mencionó el empaquetado de estructuras, pero recuerde que esta es una optimización para reducir el espacio de memoria, no generalmente para aumentar el rendimiento en tiempo de ejecución. El compilador agrega relleno por defecto para mejorar el rendimiento. En algunos casos, simplemente puede cambiar el orden de los miembros de la estructura y obtener una huella de memoria más pequeña y el mismo rendimiento (ganar-ganar).