hay muchos factores que afectan al rendimiento siendo el algoritmo (en mi opinion) de los que mas influye directamente. una buena gestion de memoria y el uso de SIMD (cuando es necesario) en tareas criticas podria decirse que son, tambien, fundamentales.
si la memoria no esta alineada pues a la cpu le costara mas, si el algoritmo es una basura tendra que hacer un proceso 1000000 de veces cuando podrian usarse algoritmos de complejidad logaritmica. si usas vectores de la STL y no te preocupas por reservarle espacio suficiente va a estar liberando + reservando memoria constantemente a medidas que lo llenes y eso se come los tiempos de ejecucion.
en fin, son muchas cosas que al final pasan factura.
si la memoria no esta alineada pues a la cpu le costara mas, si el algoritmo es una basura tendra que hacer un proceso 1000000 de veces cuando podrian usarse algoritmos de complejidad logaritmica. si usas vectores de la STL y no te preocupas por reservarle espacio suficiente va a estar liberando + reservando memoria constantemente a medidas que lo llenes y eso se come los tiempos de ejecucion.
en fin, son muchas cosas que al final pasan factura.