Techniques d'optimisation de code
La dégradation suite à l'utilisation inefficace de la mémoire est beaucoup plus importante que celle de l'utilisation inefficace des caches, car la différence de vitesse entre la mémoire et le disque est beaucoup plus élevée qu'entre le cache et la mémoire.
Les techniques d'optimisation de code sont les suivantes :
- Pour minimiser le jeu de documents de code d'un programme, regroupez les codes fréquemment utilisés, tout en séparant les codes peu utilisés. En d'autres termes, ne mettez pas en ligne de longs blocs de code de traitement d'erreur et chargez les modules fréquemment appelés à côté de leurs appelants.
- Pour réduire au minimum le jeu de documents de données, concentrez ensemble les données fréquemment utilisées et évitez les références inutiles aux pages. Pour ce faire, vous pouvez utiliser la sous-routine malloc() à la place de la sous-routine calloc(), afin d'initialiser les structures de données immédiatement avant qu'elles soient utilisées et de veiller à libérer et décliner l'espace alloué lorsqu'il n'est plus nécessaire.
- Pour réduire au minimum la mémoire réservée, regroupez les codes réservés dans des modules de chargement distincts. Assurez-vous qu'il est nécessaire d'utiliser le code réservé. Certaines structures système (telles que les pools mbuf) sont réservées en mémoire ; ne les augmentez pas de façon arbitraire.
- Des techniques en temps réel peuvent être utilisées, telles que la sous-routine prock() pour réserver du code en mémoire, et les priorités peuvent être réservées à l'aide de la sous-routine setpri().