Cela peut sembler une question étrange pour certains d'entre vous.
Je suis un programmeur Java amateur. J'ai développé plusieurs jeux, un programme d'IA qui crée de la musique, un autre programme de peinture et des trucs similaires. C'est pour vous dire que j'ai une expérience en programmation, mais pas en développement professionnel d'applications métiers.
Je vois beaucoup de discussions sur ce site sur les performances. Les gens discutent souvent de ce qui serait l'algorithme le plus efficace en C # pour effectuer une tâche, ou pourquoi Python est lent et Java est plus rapide, etc.
Ce que j'essaie de comprendre, c'est: pourquoi est-ce important?
Il y a des domaines spécifiques de l'informatique où je vois pourquoi les performances sont importantes: les jeux, où des dizaines de milliers de calculs se produisent chaque seconde dans une boucle de mise à jour constante, ou les systèmes de bas niveau sur lesquels d'autres programmes s'appuient, tels que les OS et les VM, etc.
Mais pour l'application commerciale normale de haut niveau, pourquoi les performances sont-elles importantes?
Je peux comprendre pourquoi cela comptait autrefois, il y a des décennies. Les ordinateurs étaient beaucoup plus lents et avaient beaucoup moins de mémoire, il fallait donc bien réfléchir à ces choses.
Mais aujourd'hui, nous avons tellement de mémoire à épargner et les ordinateurs sont si rapides: est-ce vraiment important si un algorithme Java particulier est O (n ^ 2)? Cela fera-t-il réellement une différence pour les utilisateurs finaux de cette application d'entreprise typique?
Lorsque vous appuyez sur un bouton GUI dans une application d'entreprise typique, et en arrière-plan, il appelle un algorithme O (n ^ 2), en ces jours d'informatique moderne - ressentez-vous réellement l'inefficacité?
Ma question est divisée en deux:
- En pratique, aujourd'hui, la performance est-elle importante dans un programme d'entreprise normal?
- Si c'est le cas, donnez-moi des exemples concrets d'endroits dans une telle application, où les performances et les optimisations sont importantes.