J'arrive à ce travail dans des domaines où il n'y a pas de SLA de performance. En ce qui concerne les moteurs de rendu hors ligne en infographie, il n'y a pas de "performances satisfaisantes" pour les utilisateurs, car ils dépensent déjà d'énormes sommes d'argent pour répartir l'informatique sur les clouds et rendre les batteries de serveurs, même avec les moteurs de rendu les plus modernes. pour produire des images et des images de qualité production pour des films, par exemple
Mais je dois dire en tant qu'entreprise travaillant dans ce domaine depuis de nombreuses années que toute solution qui dégrade considérablement la maintenabilité en faveur de l'efficacité fonctionne en fait contre les exigences de performance en constante évolution. Parce que si vous ne pouvez pas maintenir efficacement votre solution pendant des années à venir alors que les choses changent sous vos pieds (à la fois en termes de code environnant et de ce que les utilisateurs attendent que les concurrents continuent de se surpasser les uns les autres), alors votre solution travaille déjà vers l'obsolescence et besoin de remplacement en gros.
Je ne vois pas le but ultime de profileurs comme VTune comme un moyen d'accélérer l'exécution de mon code. Leur valeur ultime est de m'assurer que je ne dégrade pas ma productivité pour répondre à des exigences de performance en constante augmentation. Si je dois absolument appliquer une micro-optimisation grossière, le profileur, combiné à son exécution sur des cas d'utilisateurs réels (et non à un cas de test, j'imagine peut- être important), s'assure que j'applique une telle apparence inévitablement grossière optimisations très, très judicieusement uniquement aux meilleurs hotspots qui apparaissent ainsi que de les documenter très soigneusement car je devrai inévitablement les revoir, les maintenir et les modifier et les modifier pour les années à venir si cette solution reste viable.
Et surtout si votre solution optimisée implique plus de couplage, je serais vraiment réticent à l'utiliser. Parmi les mesures les plus précieuses que j'apprécie dans les domaines les plus critiques de la base de code, le découplage (comme pour minimiser la quantité d'informations que quelque chose doit fonctionner, ce qui minimise également la probabilité qu'il nécessite des modifications à moins qu'il n'ait directement besoin de modifications) ), car ces domaines critiques multiplient considérablement les raisons pour lesquelles les choses changent. Ce qui signifie que moins il faut d'informations pour fonctionner, moins il y a de raisons de changer et minimiser les raisons du changement est vraiment une partie énorme de l'amélioration de la productivité dans mes domaines de concentration particuliers parce que les choses vont devoir constamment changer de toute façon (nous deviendra obsolète dans un an sinon),
Pour moi, les solutions les plus grandes et les plus efficaces que j'ai trouvées sont celles où l'efficacité, la maintenabilité et la productivité ne sont pas diamétralement opposées. La quête pour moi est d'essayer de rendre ces concepts aussi harmonieux que possible.