• [^] # Re: Échange avec Uncle Bob

    Posté par . En réponse au lien « Clean code » : performances lamentables. Évalué à 6.

    Pourquoi? Qu'est-ce qui empêcherait ce coût d'être élevé en cas d'abus d'héritage (allez, disons qu'il y a 10 niveaux d'héritages, 5 fonctions virtuelles à chaque fois, et que chaque couche a plus de classes que sa couche parente...), de fonctions virtuelles, de dynamic_cast?

    Je suis d'accord que ça n'est pas totalement impossible. Mais on parle de nanosecondes. Donc oui, on va peut-être perdre des millions de nanosecondes. Il n'empêche que ça reste imperceptible, parce que le temps d'exécution, en réalité, c'est des cache miss, des accès disques, des appels système, etc. C'est assez perturbant de voir à quel point les processeurs sont rapides, en fait.

    Ça me rappelle une discussion avec notre ingé système, qui n'était pas content quand on lançait 300 exécutables sur un serveur de 100 cœurs. Ça fait péter le load average (et ça fait clignoter ses alarmes), et en théorie les context switch sont coûteux. Et en effet, ça fait des dizaines de milliers de context switch... qui font perdre quelques dizièmes de microsecondes chacun. Donc au final, moins d'une seconde sur des jobs qui tournent sur 3 jours. C'est toujours une histoire d'ordre de grandeur, faire des millions de fois des choses inutiles qui durent 10 milliardièmes de secondes, c'est complètement instantané. Par contre, faire un milliard de fois quelque chose qui prend une microseconde, ça fait planter la machine.